トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

コンポーネントプログラミング(2003-12-03)

第3章の課題

すべてのプログラムが動作したら3-5のプログラムで跳ねている画像をキーにより制御するように変更する。(利用する画像や解像度を変更してもよい)

  1. カーソルキー(↑、↓、←、→)を押した方向に移動する
  2. Enterキーで終了する
  3. sキーで加速、bキーで減速する

画像上をクリックすると終了するようにする。

 ヒント

  • プログラムは次の4つのプロシージャーで構成されている。
    • Form_Click() マウスボタンをクリックしたときのみ実行されるコード
    • Form_KeyDown?() キーを押したときのみ実行されるコード
    • Form_Load() プログラム開始時(フォームを表示するとき)に実行されるコード。
    • Form_Unload() プログラム終了時のみ実行するコード
  • 通常はForm_Load内のwhileループ内を繰り返し実行しているが、キーが押されると

Form_KeyDown?メソッドにプログラムの制御が移る。

  • キー入力はForm_KeyDown?メソッドで処理する。~

どのキーが押されたかは変数KeyCode?を調べれわかる。~各キーは次の名前になっている

キー キーコード キー キーコード
vbKeyUp? vbKeyDown?
vbKeyLeft? vbKeyRight?
S vbKeyS B vbKeyB
Enter vbKeyReturn?
  • どのキーが押されたかはifあるいはselect case文を使って調べる。
  • どの変数が画像の移動量を保持しているかをソースコードから読み取る。
  • 変数宣言の位置はそのままでよいか?
  • 現在どの方向に移動・加速しているかを判断する必要がある。
    • 移動方向は+、−の符号で表現している。
    • 移動量は変数の値(整数)
    • A=-Abs(A)で移動量は同じで上または左へ方向転換する。

変数の有効範囲

変数は宣言した位置で利用できる範囲が異なる。

  • プログラムの先頭部で宣言された変数はプログラム全体で利用できる。(グローバル変数)
  • SubとEnd Sub(Subブロック)の間で宣言されたプログラムはその範囲内でのみ利用でき、Subブロック外では利用できない。(ローカル変数)

[コンポーネントプログラミング]