06/06/10 20:16:40 0j3Y3Eu0
>>565
がんがる~
課題スレVB2005課題5キー入力
URLリンク(gamdev.org)
キー入力とバックバッファをやった
GetAsyncKeyStateを使う方法もあるらしいけど
今回はwikiのヒントにあった_KeyDownを使った
まとめ
・Formにコンポーネントを乗せるとKeyDownなどのイベントプロシージャが実行されなくなる場合がある
これに対処するにはFormのKeyPreviewをTrueにする
・KeyDownでフラグをTrue、KeyUpでフラグをFalseにする
こうすることでキーを押しっぱなしにしたときにKeyDownが連続で発生してもキーが現在、押下状態かどうか判断できる
・バックバッファはBackBuffer = New Bitmap(640, 480)でビットマップを作って利用
・ビットマップになにか描画したいときはBBGraphics = Graphics.FromImage(BackBuffer)でBBGraphicsを使う
・ビットマップを描画画面に転送するのはformGraphics.DrawImage(BackBuffer, 0, 0)
Timer以外でメインループを作る方法が見つからないorz
win32のPeekMessageやDelphiのOnIdleみたいな方法ないのかなぁ……
Application.DoEvents()を挟んでビジーループでいいのかな
System.Threading.Thread.SleepでSleepの替わりにもなりそうだし