• チュートリアル
  • 機能解説
  • リファレンス
  • 初代Altseedはコチラ

    • チュートリアル
    • 0章 : Altseedを初めよう
    • 1章 : ウィンドウを表示してみよう
    • 2章 : キャラクターを描画してみよう
    • 3章 : キャラクターに弾を撃たせてみよう
    • 4章 : クラスを自分で設計してみよう
    • 5章 : 敵・敵のショットを表示してみよう
    • 6章 : 当たり判定の機能を使ってみよう
    • 7章 : 音を鳴らしてみよう
    • 8章 : 得点を表示してみよう
    • 9章 : タイトル・ゲームオーバー画面を作ってみよう
    • 10章 : いざ、公開準備

    1章 : ウィンドウを表示してみよう

    この章の目標

    この章の目標は、Altseed2を使ってウィンドウを表示することです。 プレイヤーや弾を描画する前に、そもそも「画像を表示するウィンドウ」がなければ何もできません。 そこで、最初にAltseed2を使ってウィンドウを表示してみましょう。

    新たに導入する知識

    本章で使用するC#の機能は下記のWebページに説明されています。
    必要次第参照してください。

    • C# によるプログラミング入門 : コメント
    • C# によるプログラミング入門 : 条件分岐
      ここではif文を使用します。
    • C# によるプログラミング入門 : 反復処理

    ウインドウの表示

    0章でVisualStudioのセットアップができたと思います。 VisualStudioの右側にソリューションエクスプローラーと呼ばれるものがあると思います。

    pic1

    このProgram.csを開いてください。コードが表示されます。

    ウィンドウを表示するプログラムは以下になります。

    using Altseed2;
    using System;
    
    namespace Tutorial
    {
        class Program
        {
            [STAThread]
            static void Main(string[] args)
            {
                // エンジンを初期化
                Engine.Initialize("Tutorial", 960, 720);
    
                // メインループ
                while (Engine.DoEvents())
                {
                    // エンジンを更新
                    Engine.Update();
    
                    // Escapeキーでゲーム終了
                    if (Engine.Keyboard.GetKeyState(Key.Escape) == ButtonState.Push)
                    {
                        break;
                    }
                }
    
                // エンジンの終了処理を行う
                Engine.Terminate();
            }
        }
    }
    

    そのままコピーアンドペーストするとnamespaceが書き変わってしまうのでnamespaceは変えないように気を付けてください。

    コードですがusingやnamespaceなどよくわからない単語がありますが、この辺りはまだそこまで気にしなくていいです。気になる方はこちらを読んでください。

    • C# によるプログラミング入門 : 名前空間

    上のコードを実行します。VisualStudio画面上部の開始ボタンを押すかF5キーを押すことで実行することができます。 実行に成功すると以下のようなウィンドウが表示で来ると思います。

    Window

    コードの解説をしていきます。
    重要なのはMainの中です。C#では実行するとこのMainの中身が呼び出されます。ここが今回ウィンドウを表示させている部分です。

    まずEngine.Initialize でAltseedの初期化をしています。 ここでウインドウに表示されるタイトルや画面サイズ、その他のオプション(フルスクリーンにするかどうか等)を設定できます。 この初期化はAltseedを使用する場合、必ず実行しなければいけません。 初期化に成功すると、ウインドウが表示されます。

    今回はEngine.Initialize("Tutorial", 960, 720); となっています "Tutorial"は表示されるウィンドウの名前、960は横幅、720は縦幅になります。

    これでAltseedはWindowを表示してくれるのですが、それだけではすぐにプログラムが終了してしまうので、プログラムが終了しないようにwhileループでEngineを更新させてあげる必要があります。

    while (Engine.DoEvents()) でウインドウが閉じられていないか確認することができます。 Engine.DoEvents メソッドはウインドウが閉じられていない場合、正(true)、閉じられた場合、否(false)を返します。 whileはtrueが返され続ける限り、{} の中身を何度も実行し、falseが返された場合、実行せずに {} の後に移動します。 ウインドウ右上の×ボタン等を押すと、falseを返し、whileの中身の実行を終了します。

    whileループの中身を説明していきます。Engine.Update()というものがあると思います。これを実行することでAltseedが更新を続けることができます。

    もう一つ、Escキーを押したときにウィンドウを閉じる処理が書いてあります。

    // Escapeキーでゲーム終了
    if (Engine.Keyboard.GetKeyState(Key.Escape) == ButtonState.Push)
    {
      break;
    }
    

    Engine.Keyboard.GetKeyState はキーの状態、例えば、「押されている」「押されていない」などを返すメソッドです。ここではEscキーの状態を返します。 ifはtrueが返されると{}の中身を実行します。ここではキーの状態が ButtonState.Push だったら {} の中身を実行します。 {} には break が書いてあります。これはwhileループをその場で抜ける機能です。 whileループを抜けると、終了処理が実行されます。この時にウインドウが開いたままならば、自動的にウインドウを閉じます。 以下の通り ButtonState.Push 以外にも取得できるキーの状態があります。うまく組み合わせて使っていきましょう。

    キーの状態 説明
    ButtonState.Free キーを押していない状態
    ButtonState.Hold キーを押している状態
    ButtonState.Push Free から Hold に変わる瞬間の状態
    ButtonState.Release  Hold から Free に変わる瞬間の状態

    まとめ

    1章では一番基本となるWindowの表示を行いました。
    2章ではウィンドウにキャラクターを描画していきます。

    Copyright © 2020 Altseed .