• 締切済み

ピンボールのつくりかた教えて!

VBを専門学校で習い始めています。課題としてtimerを使い、pictureboxに絵を入れてlocationをいじってつくるのですが、ちょうど端ではねかえるというのがうまくいきません。formのサイズは横450縦300です。pictureboxのlocationは0,0からはじめます。だれか教えて下さい、よろしくお願いします。

みんなの回答

  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

ANo.1 = Interest です。 > pictureboxは中にボールの画像をとりこんでいて、 > そのboxのx軸、y軸をいじってこの数字になったらプラス、 > マイナスを使ったりして別の方向にpicturebox自体を動かす > 感じです。 ここの部分だけでも、ソースコードを出してもらえますか? > 説明がへたくそでごめんなさい。 複雑なものを説明するときは、箇条書きを活用すると分かりやすくなりますよ。

mmmchan
質問者

補足

お返事遅くなって申し訳ありません。 途中までのソースコードです。よろしくお願いします。これだと一回下にあたってはねかえるのですが、右上の方へ行ったきりになってしまいます。formのサイズは横552、縦293で、pictureboxのサイズは64、50です。 Timer1 Static x As Integer Static y As Integer Static sw As Integer(x軸用のswitchとして使用) Static sw2 As Integer(y軸用のswitchとして使用) If x > 200 Then sw = 1 sw2 = -1 End If If x <= 0 Then sw = 1 sw2 = 1 End If y = PictureBox1.Location.Y + 5 * sw2 x = PictureBox1.Location.X + 5 * sw PictureBox1.Location = New Point(x, y) 開始ボタン Timer1.Enabled = True 停止ボタン Timer1.Enabled = False

  • Interest
  • ベストアンサー率31% (207/659)
回答No.1

(Q1) VisualBasicのバージョンは? (Q2)「ピンボール」とおっしゃっているのは、「PictureBoxの中でボールが壁にあたったら跳ね返りつつ動き回る」ものでいいですか? (Q3) PictureBoxの中でボールを移動させることはできているのですね? 考え方としては、 (1)pictureboxの縦、横のサイズを取得しておく。 (2)初速度をつけてボールを移動させる。 (3)ボールが壁にぶつかったら(※)ボールの速度をぶつかった壁と反対方向に変える。 で、(3)をTimerで数十ミリ秒~100ミリ秒周期で呼び出せばよいでしょう。 (※)の壁との衝突判定まで説明が必要ですか? これまで説明すると、あなたのやることがなくなってしまいそうです・・・

mmmchan
質問者

補足

ご回答ありがとうございます。バージョンはnet 2003です。pictureboxは中にボールの画像をとりこんでいて、そのboxのx軸、y軸をいじってこの数字になったらプラス、マイナスを使ったりして別の方向にpicturebox自体を動かす感じです。if文でx軸が画像の端の数値になったらこっちへって作ってみたのですが、それが途中で跳ね返ったりとか、右や左へ行ったきりなんてなってしまうのです。説明がへたくそでごめんなさい。