色々と問題を抱えてるコードです。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();
}
}
} ||<