//usingディレクティブで名前空間の参照を簡単にします。
using System;
using System.Drawing;
using System.Windows.Forms;
using Wakaba;

namespace Game
{
    class Game
    {
        private const int MAPCHIP_SIZE = 32;
        private const int SCROLL_SPEED = 4;
        
        //オブジェクト変数を宣言します。
        private static Helper w;

        [STAThread]
        static void Main(string[] args)
        {
            try
            {
                int i;
                int j;
                Random objRnd = new Random();
                int intRnd;
                int intScroll = 0;

                //オブジェクト変数をインスタンス化します。
                w = new Helper();

                //若葉ヘルパーを初期化します。
                w.Initialize();

                //リソースのビットマップからスプライトを作成します。
                w.SpriteCreate("マップチップ", MyGame1.Properties.Resources.map, Helper.TransparentColor.None);

                w.SpriteCreate("背景1", 640, 480);
                w.SpriteShow("背景1");

                w.SpriteCreate("背景2", 640, 480);
                w.SpriteShow("背景2");

                for (i = 0; i <= 14; i++)
                {
                    for (j = 0; j <= 19; j++)
                    {
                        intRnd = objRnd.Next(0, 3);
                        w.SpriteCopy("背景1", (short)(j * MAPCHIP_SIZE), (short)(i * MAPCHIP_SIZE), "マップチップ", intRnd * MAPCHIP_SIZE, 0, MAPCHIP_SIZE, MAPCHIP_SIZE);
                    }
                }

                w.SpriteCopy("背景2", 0, 0, "背景1", 0, 0, 640, 480);

                //ウィンドウを閉じるまで画面を更新します。
                do
                {
                    w.SpritePosition("背景1", 0, 0, intScroll);
                    w.SpritePosition("背景2", 0, 0, intScroll - 480);

                    intScroll += SCROLL_SPEED;
                    if (intScroll > 480)
                    {
                        intScroll = 0;
                    }

                    w.ScreenRefresh(true);
                } while (!w.WindowClosing);

            }
            catch (Exception ex)
            {
                //エラーメッセージを表示します。
                MessageBox.Show(ex.Message + ex.StackTrace);
            }

            //若葉ヘルパーのオブジェクトを破棄します。
            w.Dispose();
        }
    }
}