私は、フォームペイントイベントでこのコードを使用してC#.NET 2.0でグラフィックスを描画できます。C#単純なグラフィックスのもの
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(20, 20, 20, 20));
しかし、どのように描画オブジェクトを移動させますか?たとえば、長方形が画面の上または下に移動します。これはタイマーや何を使って行われますか?
私は、フォームペイントイベントでこのコードを使用してC#.NET 2.0でグラフィックスを描画できます。C#単純なグラフィックスのもの
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(20, 20, 20, 20));
しかし、どのように描画オブジェクトを移動させますか?たとえば、長方形が画面の上または下に移動します。これはタイマーや何を使って行われますか?
はい、タイマーを使用できます。
現在行っているように、ペイントイベントであなたのことを描画します。
オブジェクトを動かして、タイマーのティックイベントでゲームロジックを実行してから、すべてを再描画します。Control.Invalidate()
。これにより、ペイントイベントがトリガされます。
私の回答hereを参照してください。完全な例です。
私は 'Control.Invalidate()'よりも滑らかな結果を示す 'Control.Refresh()'を常に使用します。 – ja72
十分に公正。リフレッシュコールは内部的に無効になり、 'UpdateWindow'ウィンドウAPIも呼び出すので、使用する方が良いかもしれません。私はバックバッファを使いがちですが、 'Invalidate'には何の問題もありませんでした。 –
KeyDownイベントハンドラを使用して、描画されたオブジェクトの位置の移動を管理できます。
C# Basic Gox Gameにあなたが使用している人がいます。
基本的なボックスゲームは私がここでコードしようとしているものです。リンクをありがとう - それは間違いなく便利になるでしょう。 – david
'Pen'と' Brush'を後で処理せずに初期化しようとしてください。 'using(Pen = new Pen(...)){...}'スタイルコードを使うことをお勧めします。 – ja72