酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C#でYaneSDKを使ってBMPで書いたキャラを表示させる

色々と問題を抱えてるコードです。YaneSDKだけではなくC#への理解不足もありそうです。

|cs| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace yanetest2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

    Yanesdk.Draw.Win32Window window;
    Yanesdk.Draw.GlTexture texture;
    Yanesdk.Draw.Surface surface;

    // monaくん描画開始座標
    int mona_x;
    int mona_y;

    // フォームの読み込み時に初期化を行う
    private void Form1_Load(object sender, EventArgs e)
    {
        window = new Yanesdk.Draw.Win32Window(pictureBox1.Handle);

        // Texture作成時はScreen.Selectを呼ぶ
        // なんで?
        window.Screen.Select();

        // BMPからサーフェイスに変換
        texture = new Yanesdk.Draw.GlTexture();
        Bitmap bmp = new Bitmap(GetType(), "mona.bmp");
        Yanesdk.Draw.BitmapHelper.BitmapToSurface(bmp, out surface);

        // テクスチャにサーフェイスを設定する
        texture.SetSurface(surface);

        // 代入による初期化しか出来ない?
        // C++みたいな初期化子の使い方は出来ないのかな?
        // まぁ、あとで調べましょ。
        mona_x = mona_y = 0;

        // monaくんは真ん中に配置しる
        mona_x = (int)((window.Screen.Width / 2) - (texture.Width / 2));
        mona_y = (int)((window.Screen.Height / 2) - (texture.Height / 2));
    }

    // 100ms間隔でこの関数が呼ばれる(10FPS)
    private void timer1_Tick(object sender, EventArgs e)
    {
        // 描画はSelect()〜Update()までに行う
        window.Screen.Select();
        // 黒色で消すよ
        window.Screen.SetClearColor(0, 0, 0);
        window.Screen.Clear();
        window.Screen.Blt(texture, mona_x, mona_y);
        window.Screen.Update();
    }
}

} ||<