貴様ら!ブロック崩し作るので見てください
■ このスレッドは過去ログ倉庫に格納されています
0513374
NGNGおっ、名前付けをちゃんとしたんだね、なかなかみやすくなったんじゃないかな?
おおぅ、ブロックをモジュール化したんですね。
よく見てないんですが、いいんじゃないですか。
気になった点をいくつか、Form_Initializeの
'ここにループを書くとウインドウ描画前に始まってしまうので、
'タイマー使用
TmrCallMain.Enabled = True
は画面が表示されずにMainLoopに入ってしまうんでやってるんだと思うんだけど
その場合は、Initializeでフォームを Show して DoEvents かませば大丈夫です。
Me.Show
DoEvents
MainLoop
とこんな感じで書けばいけると思う。
あとは重複して書いてるところが多い。
With tmpRect
.Bottom = 220
.Left = 250
.Right = 310
.Top = 140
End With
これはいっぱいあるんで、
tmpRect = MakeRect( 220,250,310,140 )
とこんな感じのRECTを作る関数を作った方が良いです。
小さい物でもいっぱいあると曲者です。
後はある特定のボタンが押されているときの速度を
変える処理はこんな風に書けばよいです。
Dim MoveSpeed As Long
MovdSpeed = 2 '通常移動速度
If Press.Shift Then MoveSpeed = MoveSpeed * 2 'SHIFTが押されているときは2倍
ElseIf Press.Ctrl Then MoveSpeed = MoveSpeed * 3 'CTRL が押されているときは3倍
If Press.Left Then
Paddle.X = Paddle.X - MovdSpeed 'この辺を変数に変えてみた
If Paddle.X < 0 Then Paddle.X = 0
ElseIf Press.Right Then
Paddle.X = Paddle.X + MovdSpeed 'この辺を変数に変えてみた
If Paddle.X + Paddle_width >= Game_area Then Paddle.X = Game_area - Paddle_width
End If
重複する処理は書いてはいけない、修正や変更が大変になります。
ちょっとづつ値が違うような処理は変数をうまく使えばひとつにまとめられます。
似たような構文が続くものは必ずうまく書く方法があるのでそこに注意してみてください。
あと、実行させると自機が自動で左に移動します。
カーソルきかないっす。仕様ですか(笑。
■ このスレッドは過去ログ倉庫に格納されています