2011-12-15 7 views
1

私は、フォームペイントイベントでこのコードを使用してC#.NET 2.0でグラフィックスを描画できます。C#単純なグラフィックスのもの

e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(20, 20, 20, 20)); 

しかし、どのように描画オブジェクトを移動させますか?たとえば、長方形が画面の上または下に移動します。これはタイマーや何を使って行われますか?

+0

'Pen'と' Brush'を後で処理せずに初期化しようとしてください。 'using(Pen = new Pen(...)){...}'スタイルコードを使うことをお勧めします。 – ja72

答えて

2

はい、タイマーを使用できます。

現在行っているように、ペイントイベントであなたのことを描画します。

オブジェクトを動かして、タイマーのティックイベントでゲームロジックを実行してから、すべてを再描画します。Control.Invalidate()。これにより、ペイントイベントがトリガされます。

私の回答hereを参照してください。完全な例です。

+0

私は 'Control.Invalidate()'よりも滑らかな結果を示す 'Control.Refresh()'を常に使用します。 – ja72

+0

十分に公正。リフレッシュコールは内部的に無効になり、 'UpdateWindow'ウィンドウAPIも呼び出すので、使用する方が良いかもしれません。私はバックバッファを使いがちですが、 'Invalidate'には何の問題もありませんでした。 –

1

KeyDownイベントハンドラを使用して、描画されたオブジェクトの位置の移動を管理できます。

C# Basic Gox Gameにあなたが使用している人がいます。

+0

基本的なボックスゲームは私がここでコードしようとしているものです。リンクをありがとう - それは間違いなく便利になるでしょう。 – david