回 帖 发 新 帖 刷新版面

主题:高手帮忙.........................

我在写一个 坦克游戏 但是 射中目标 地方 怎么写 不知道了
代码我上传好了
大家帮忙...

回复列表 (共4个回复)

沙发

'说明:
'1、变量和对象,尽量使用有意义的、容易理解的字符串来表示;
'2、程序书写要使用缩进格式凸显提逻辑结构
'3、写程序要养成填写注解的习惯
'4、合理使用不同的流程控制语句
'5、不变的数值尽量使用常量,而不直接使用数值,利于同意修改调试
'6、注意if……then……else……endif的使用,不要产生then与else之间没有语句的情况

Private Enum 方向
    上
    下
    左
    右
End Enum

Dim 坦克方向 As 方向

Private Sub Command1_Click()
    子弹.Visible = True
    目标.Left = 1440
    子弹.Left = 1440
End Sub

Private Sub Command2_Click()
    Timer1.Enabled = False
    MsgBox 子弹.Left
    If 子弹.Left = 目标.Left Then MsgBox "tng?"
End Sub

Private Sub Form_Load()
    Command1.Caption = "重新开始"
    Command2.Caption = "是干啥用的?"
    坦克方向 = 上
End Sub

Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case 32  '空格发射,并开始计时
            子弹.Visible = True
            子弹.Left = 坦克.Left + (坦克.Width - 子弹.Width) / 2
            子弹.Top = 坦克.Top + (坦克.Height - 子弹.Height) / 2
            Timer1.Enabled = True
        Case 37  '左箭头,向左走
            坦克方向 = 左
            If 坦克.Left > 0 Then '没有到左边界
                坦克.Picture = LoadPicture(App.Path & "\ong.jpg")
                坦克.Left = 坦克.Left - 100
            End If
        Case 40  '下箭头,向下走
            坦克方向 = 下
            If 坦克.Top < Picture1.Height - 坦克.Height Then '没有到下边界
                坦克.Picture = LoadPicture(App.Path & "\as.jpg")
                坦克.Top = 坦克.Top + 100
            End If
        Case 38  '上箭头
            坦克方向 = 上
            If 坦克.Top > 0 Then '没有到上边界
                坦克.Picture = LoadPicture(App.Path & "\us.jpg")
                坦克.Top = 坦克.Top - 100
            End If
        Case 39  '右箭头,向右走
            坦克方向 = 右
            If 坦克.Left < Picture1.Width - 坦克.Width Then '没有到右边界
                坦克.Picture = LoadPicture(App.Path & "\sol.jpg")
                坦克.Left = 坦克.Left + 100
            End If
    End Select
End Sub

Private Sub Timer1_Timer()
    Select Case 坦克方向
        Case 上
            子弹.Top = 子弹.Top - 20
        Case 下
            子弹.Top = 子弹.Top + 20
        Case 左
            子弹.Left = 子弹.Left - 20
        Case 右
            子弹.Left = 子弹.Left + 20
    End Select
    If Abs(子弹.Left - 目标.Left) < 20 And Abs(子弹.Top - 目标.Top) < 20 Then 击中
End Sub

Private Sub 击中()
    子弹.Visible = False
    目标.Visible = False
End Sub

板凳

谢谢你 ...

3 楼

但是击中目标 不起作用....

4 楼

好了。
解决了

我来回复

您尚未登录,请登录后再回复。点此登录或注册