カタツムリ2007年09月18日

小さいながらもゲームプログラム?

早速ですが、ファイルをダウンロードして実行させてください。

その次に、ソースを開いて見ましょう!

単純ですが、とてもゲームらしく書いてあります。

前回解説した、構造体と、配列を使っております。

また構造体は、ゲームらしく、pos_x, pos_y と座標の変数に加えて、

カラー番号の、color を加えました。

Public Type Type_Data

id As Integer
pos_x As Long
pos_y As Long
color As Long

End Type

※ id は後日使います。

そして、my_pos_init 関数で座標の初期化を行います。

また、初期値は、EXCELのCELLから読み込んでおります。

main_5 ボタンの下にある表が、それにあたります。

POSI X と POSI Y が初期座標の位置です。

さらにCOLOR として4色ありますが、

これらを変えて、一度、試して下さい。

さて、下記がメインのループですが、

描画範囲を、CELL座標、1,1 から 10,10 までの範囲をクリアーして、

その後、my_pos_move で移動、my_put_cell で描画です。

あとは、msgbox の返値が、Yes か No で、ループ処理を制御しております。

-------------------------------- ここからメインループです。

Do While intRet = vbYes

Range(Cells(1, 1), Cells(10, 10)).Cells.Clear

For i = 0 To WORK_COUNT
my_pos_move GL_actwork(i) '構造体のアドレス
my_put_cell GL_actwork(i) '構造体のアドレス
Next i

intRet = MsgBox(strMsg, vbYesNo + vbQuestion, "MsgBox")
Loop

------------------------------

実際の、関数の中身は、皆さんで読んで下さい。

たいして難しいこともないでしょう。

さて、ここで今日のお題です。

下記のプログラムでは、XY座標が常に増加1で固定です。

------------------------------

Private Sub my_pos_move(ByRef data As Type_Data)

data.pos_x = data.pos_x + 1
data.pos_y = data.pos_y + 1

End Sub

------------------------------

この+1を変数にして見ましょう。

それでは、挑戦してみて下さいね。

正解は、また明日紹介したいと思います。


ツイッターはじめました~フォロー待ってま~す!!
↓↓↓下記の3つのバナーをクリックして下さい。ランキングUPにご協力をお願いします。↓↓↓

にほんブログ村 経営ブログへランキングUP!

ランキングUP!

banner2.gif 人気blogランキング!

投稿者 shiozumi : 22:28 | トラックバック (0)

このエントリーのトラックバックURL

http://blog.e-smile.ne.jp/cgi-bin/mt/mt-tb.cgi/59