プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

ANo.1 = Interest です。



> pictureboxは中にボールの画像をとりこんでいて、
> そのboxのx軸、y軸をいじってこの数字になったらプラス、
> マイナスを使ったりして別の方向にpicturebox自体を動かす
> 感じです。

ここの部分だけでも、ソースコードを出してもらえますか?

> 説明がへたくそでごめんなさい。

複雑なものを説明するときは、箇条書きを活用すると分かりやすくなりますよ。

この回答への補足

お返事遅くなって申し訳ありません。
途中までのソースコードです。よろしくお願いします。これだと一回下にあたってはねかえるのですが、右上の方へ行ったきりになってしまいます。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

補足日時:2006/08/03 12:31
    • good
    • 0

(Q1) VisualBasicのバージョンは?


(Q2)「ピンボール」とおっしゃっているのは、「PictureBoxの中でボールが壁にあたったら跳ね返りつつ動き回る」ものでいいですか?
(Q3) PictureBoxの中でボールを移動させることはできているのですね?

考え方としては、
(1)pictureboxの縦、横のサイズを取得しておく。
(2)初速度をつけてボールを移動させる。
(3)ボールが壁にぶつかったら(※)ボールの速度をぶつかった壁と反対方向に変える。
で、(3)をTimerで数十ミリ秒~100ミリ秒周期で呼び出せばよいでしょう。

(※)の壁との衝突判定まで説明が必要ですか? これまで説明すると、あなたのやることがなくなってしまいそうです・・・

この回答への補足

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

補足日時:2006/07/30 00:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!