画像をけさないためには?


ハチ公  2009-01-03 23:51:35  No: 145590

現在横スクロールゲームを作成しております。
障害物(バナナの皮とかハードルとか)を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


魔界の仮面弁士  2009-01-04 00:20:13  No: 145591

> 障害物がきたときに、ジャンプさせると障害物が表示されません。
部分的なコードを見せられても、判断のしようがありません。
Debug クラスやステップ実行などを用いて、問題を切り分けてみてください。

とりあえず、提示されたコードを見た範囲内で回答すると:

・pic4_y は常に 0 固定になっているようですが、よろしいのでしょうか?
・Tick のたびに、Image.FromFile を呼び出していますが、本当に必要ですか?
・「キャラクターの近く」とありますが、提示されたコードの中で、
  「キャラクター」を表す部分は、どれにあたるのでしょうか?
・r_flip というのが何か分かりませんが、True にするコードはあっても、
  False にするコードが見当たりませんが、問題無いのでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加