現在横スクロールゲームを作成しております。
障害物(バナナの皮とかハードルとか)をPictureBoxで表示させ
タイマーで右から左へ動かし、画面左にいるキャラクターを
ジャンプさせていくゲームなのですが、キャラクターの近くに
障害物がきたときに、ジャンプさせると障害物が表示されません。
どうすれば、表示されるでしょうか?
ソースです。
Private Sub Timer6_syougai_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer6_syougai.Tick
Dim pic4_x As Integer 'PictureBox4のX座標
Dim pic4_y As Integer 'PictureBox4のY座標
PictureBox4.Image = Image.FromFile("hardle.gif") 'ハードル画像の表示
pic4_y = PictureBox4.Location.Y
'障害物
If PictureBox4.Location.X > -666 Then
pic4_x = PictureBox4.Location.X - 3
PictureBox4.Location = New Point(pic4_x, pic4_y)
Else
PictureBox4.Location = New Point(665, pic4_y)
Timer6_syougai.Enabled = False
r_flip = True
End If
End Sub
> 障害物がきたときに、ジャンプさせると障害物が表示されません。
部分的なコードを見せられても、判断のしようがありません。
Debug クラスやステップ実行などを用いて、問題を切り分けてみてください。
とりあえず、提示されたコードを見た範囲内で回答すると:
・pic4_y は常に 0 固定になっているようですが、よろしいのでしょうか?
・Tick のたびに、Image.FromFile を呼び出していますが、本当に必要ですか?
・「キャラクターの近く」とありますが、提示されたコードの中で、
「キャラクター」を表す部分は、どれにあたるのでしょうか?
・r_flip というのが何か分かりませんが、True にするコードはあっても、
False にするコードが見当たりませんが、問題無いのでしょうか?