投稿者 TAKASI  (学生) 投稿日時 2010/8/22 00:14:46
VB2008でブロック崩しを作っているのですが、玉は動くようになり次に自機を動かそうと思いやってみたのですが動きません。
もう一つプロジェクトを作って自機を動かす文だけでやってみるときちんと動きます。
あと、keydownイベント内にブレークポイントを作ってみたのですが反応はありませんでした。
長くなってしまうのでballmoveとkeydownイベントだけにしました。簡単に言うとボタン1が押されるとタイマーが動き出し、タイマーが刻むたびにballmove()関数がうごきます。
何が問題だと思われますか?何でもいいのでアドバイスお願いします

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Dim g As Graphics = Pic1.CreateGraphics()
        g.DrawImage(picback, zikiX, zikiY, rect, GraphicsUnit.Pixel)
        Select Case e.KeyCode
            Case Keys.Left : zikiX -= 3
            Case Keys.Right : zikiX += 3
        End Select
        g.DrawImage(ziki, zikiX, zikiY)
        g.Dispose()
    End Sub

Private Sub ballmove()
        Dim g As Graphics = Pic1.CreateGraphics()
                rec.X = x : rec.Y = y : rec.Width = 28 : rec.Height = 28
        g.DrawImage(picback, x, y, rec, GraphicsUnit.Pixel)
        g.DrawImage(ziki, zikiX, zikiY)
        If x + 28 >= Pic1.Width Then
            flag_x = False
        ElseIf x < 1 And flag_x = False Then
            flag_x = True
        End If
        If y + 28 >= Pic1.Height Then
            flag_y = False
        ElseIf y < 1 And flag_y = False Then
            flag_y = True
        End If
        If flag_x = True The
            x = x + 3
        Else
            x = x - 3
        End If
        If flag_y = True Then
            y = y + 3
        Else
            y = y - 3
        End If
        g.DrawImage(tama, x, y)
        g.Dispose()
    End Sub