Visual Basic
Visual Basic
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

Visual Basic

自由に動き回るスプライトの作成


1.プログラムの仕様

 フォーム上の任意の場所をクリックする度にスプライトが発生し、フォーム内の壁に衝突しては跳ね返るプログラムを作成します。 今回もスレッド機能を使ったグラフィック関数を利用します。今まではただ自分自身のクラス(メインクラス)が描画していたのですが、 今回は独立したクラスのスプライトが動画のメソッドを持ち、自分自身で動き回るようにします。 オブジェクト指向ならではの機能ですね。

 プログラムは3つのクラスに分けられ、それぞれのクラスは SpriteAppSpriteAllSprite とします。 全体では次のような流れになります。

  • メインフォームを持つSpriteAppクラスを起動する。
  • フォーム上任意の場所をクリックすると、その位置にSpriteクラスを生成する。
    但し、初回は自動でフォーム左上隅にSpriteクラスを生成する。
  • 生成したSpriteクラスをSpriteAllクラスにコレクション登録する。
  • SpriteAllクラスはスレッド機能を持ち、複数登録されたSpriteクラス全てを一斉に動かす。
  • 各々のSpriteクラスはクリックした位置から右下方向に動き、フォームの壁に衝突すると反対方法に跳ね返る。
    ここではSpriteは塗りつぶしの円で、サイズ・移動速度・移動方向は同じで色のみ異なる。
  • フォームを閉じてスレッド機能を停止し、SpriteAppクラスを終了する。
クリックから描画までの流れ
 SpriteAppのメソッド一覧
No. 戻り値 メソッド名 引数 内容
1 なし SpriteApp_Load (イベントパラメータ) スプライト管理クラス(SpriteAll)を生成し、コレクションに初期登録する。(addSprite)
コレクション内の全スプライトを移動するメソッド(moveAll)をスレッドとして起動する。
2 なし SpriteApp_Paint (イベントパラメータ) コレクション内の全スプライトを描画する。(paintAll)
3 なし SpriteApp_MouseDown (イベントパラメータ) クリックした位置でコレクションにスプライトを登録する。(addSprite)
注)Clickイベントでは行わないこと。
4 なし SpriteApp_Closing (イベントパラメータ) プログラムを強制的に終了する。
注)今回はコンストラクタ部分の「Windowsフォームデザイナで生成されたコード」は変更しません。

 SpriteAllのメソッド一覧
No. 戻り値 メソッド名 引数 内容
1 なし (コンストラクタ) フォーム(Form) メインフォームを取得し、クライアント領域のサイズを取得する。
2 なし addSprite クリックしたx座標(Integer)
クリックしたy座標(Integer)
直径(Integer)
ブラシ(SolidBrush)
コレクションにスプライトを登録する。
3 なし moveAll なし コレクション内の全スプライトを移動する。
4 なし paintAll グラフィックオブジェクト
(Graphics)
コレクション内の全スプライトを描画する。

 Spriteのメソッド一覧
No. 戻り値 メソッド名 引数 内容
1 なし (コンストラクタ) クリックしたx座標(Integer)
クリックしたy座標(Integer)
直径(Integer)
ブラシ(SolidBrush)
スプライトのプロパティを設定する。
2 なし move なし スプライトを移動する。
3 なし paint グラフィックオブジェクト
(Graphics)
スプライトを描画する。

 
 INDEX
  課題 Visual Basic 自由に動き回るスプライトの作成
1.プログラムの仕様
  2.プログラムの説明
  3.起動例
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/