⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 VB6+DX7开发即时战略游戏(游戏代码+编辑器)
💻 FRM
📖 第 1 页 / 共 4 页
字号:
End Sub

Sub PaintMaZiDan()          '表现己方子弹
Dim destRect As RECT
Dim srcRect As RECT
Dim i As Integer

With srcRect
    .Left = 0
    .Top = 0
    .Right = ddsdZiDan.lWidth
    .Bottom = ddsdZiDan.lHeight
End With
                

For i = 0 To 30
    If Ma_ZiDan_Date(i).Shotting = True Then
        
       
        With destRect       '子弹的屏幕位置,子弹没有做裁剪
            .Left = Ma_ZiDan_Date(i).CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width - ddsdZiDan.lWidth / 2
            .Top = -(Ma_ZiDan_Date(i).CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height - ddsdZiDan.lHeight / 2
            .Right = Ma_ZiDan_Date(i).CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width + ddsdZiDan.lWidth / 2
            .Bottom = -(Ma_ZiDan_Date(i).CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height + ddsdZiDan.lHeight / 2
        End With
            
        Call BackbufferSurface.Blt(destRect, ZiDan, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
        
    End If
Next i
End Sub
Sub PaintEnemyZidan()       '表现敌方子弹
Dim destRect As RECT
Dim srcRect As RECT
Dim i As Integer

With srcRect
    .Left = 0
    .Top = 0
    .Right = ddsdZiDan.lWidth
    .Bottom = ddsdZiDan.lHeight
End With
                

For i = 0 To 30
    If Enemy_ZiDan_Date(i).Shotting = True Then
        
       
        With destRect       '子弹的屏幕位置,子弹没有做裁剪
            .Left = Enemy_ZiDan_Date(i).CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width - ddsdZiDan.lWidth / 2
            .Top = -(Enemy_ZiDan_Date(i).CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height - ddsdZiDan.lHeight / 2
            .Right = Enemy_ZiDan_Date(i).CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width + ddsdZiDan.lWidth / 2
            .Bottom = -(Enemy_ZiDan_Date(i).CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height + ddsdZiDan.lHeight / 2
        End With
            
        Call BackbufferSurface.Blt(destRect, ZiDan, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
        
    End If
Next i
End Sub

Sub PaintHit()
Dim destRect As RECT
Dim srcRect As RECT
Dim i As Integer
For i = 0 To 9
    With Hit_Date(i)
        If .Hitted = True Then
        
            Select Case .State
                Case 0
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 1
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 2
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 3
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 4
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 5
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 6
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 7
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 8
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
            
                Case 9
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
            End Select
                    
            'destRect表示的范围可随意缩放
            destRect.Left = .CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width - SpriteTileSize / 6
            
            
            destRect.Right = .CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width + SpriteTileSize / 6
           
            
            destRect.Top = -(.CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height - SpriteTileSize / 6
            
            
            destRect.Bottom = -(.CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height + SpriteTileSize / 6
            
            
            Call BackbufferSurface.Blt(destRect, Hit, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
        
        End If
                
    End With

Next i

End Sub

Sub PaintDestroy()
Dim destRect As RECT
Dim srcRect As RECT
Dim i As Integer
For i = 0 To 9
    With Destroy_Date(i)
        If .Hitted = True Then
        
            Select Case .State
                Case 0
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 1
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 2
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 3
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 4
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 5
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                Case 6
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 7
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
                Case 8
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
            
                Case 9
                    srcRect.Left = SpriteTileSize * .State
                    srcRect.Right = SpriteTileSize * (.State + 1)
                    srcRect.Top = 0
                    srcRect.Bottom = SpriteTileSize
                    
            End Select
                    
            'destRect表示的范围可随意缩放
            destRect.Left = .CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width - SpriteTileSize / 2
            
            
            destRect.Right = .CurPosX - Ma_Date.CurPosX + DisplayWidth / 2 + BackgroundTile_Width + SpriteTileSize / 2
            
            
            destRect.Top = -(.CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height - SpriteTileSize / 2
            
            
            destRect.Bottom = -(.CurPosY - Ma_Date.CurPosY) + DisplayHeight / 2 + BackgroundTile_Height + SpriteTileSize / 2
            
            
            Call BackbufferSurface.Blt(destRect, Hit, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
        
        End If
                
    End With

Next i

End Sub
Sub Hit_Date_Change()  '爆炸效果
Dim i As Integer
For i = 0 To 9
    
    With Hit_Date(i)
        If .Hitted = True Then
            .State = .State + 1
            
            If .State > 9 Then
                .Hitted = False
                .State = 0
            End If
            
        End If
    
    End With
Next i

End Sub
Sub Destroy_Date_Change()   '爆炸效果
Dim i As Integer
For i = 0 To 9
    
    With Destroy_Date(i)
        If .Hitted = True Then
            .State = .State + 1
            
            If .State > 9 Then
                .Hitted = False
                .State = 0
            End If
            
        End If
    
    End With
Next i
End Sub

Sub PaintRadar()
Dim destRect As RECT
Dim srcRect As RECT
Dim i As Integer

If Radar = True Then

    With srcRect
        .Left = 0
        .Top = 0
        .Right = SpriteTileSize - 1
        .Bottom = SpriteTileSize - 1
    End With
    
    For i = 0 To 9      '战术雷达   表现敌机(红点)
        If Enemy1_Date(i).Hp > 0 Then
            With destRect
                .Left = Enemy1_Date(i).CurPosX / RADAR_RATE + BackgroundTile_Width - ddsdRadar_Red.lWidth / 2
                .Right = Enemy1_Date(i).CurPosX / RADAR_RATE + BackgroundTile_Width + ddsdRadar_Red.lWidth / 2
                .Top = -Enemy1_Date(i).CurPosY / RADAR_RATE + BackgroundTile_Height - ddsdRadar_Red.lHeight / 2
                .Bottom = -Enemy1_Date(i).CurPosY / RADAR_RATE + BackgroundTile_Height + ddsdRadar_Red.lHeight / 2
            End With
            
            Call BackbufferSurface.Blt(destRect, Radar_Red, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
        End If
    Next i
    
    If Ma_Date.Hp > 0 Then
        With destRect       '自己(绿点)
            .Left = Ma_Date.CurPosX / RADAR_RATE + BackgroundTile_Width - ddsdRadar_Red.lWidth / 2
            .Right = Ma_Date.CurPosX / RADAR_RATE + BackgroundTile_Width + ddsdRadar_Red.lWidth / 2
            .Top = -Ma_Date.CurPosY / RADAR_RATE + BackgroundTile_Height - ddsdRadar_Red.lHeight / 2
            .Bottom = -Ma_Date.CurPosY / RADAR_RATE + BackgroundTile_Height + ddsdRadar_Red.lHeight / 2
        End With
        
        Call BackbufferSurface.Blt(destRect, Radar_Green, srcRect, DDBLT_WAIT Or DDBLT_KEYSRC)
    
    End If
    
End If
End Sub

Sub SpeedControl()   '使用暂停来控制游戏速度,用于各种性能的计算机


If SleepNum > 0 Then   '减小SleepNum以加快游戏速度

    If diStateMouse.buttons(0) = 128 Then SleepNum = SleepNum - 1

End If


If SleepNum < 20 Then   '增加SleepNum以降低游戏速度

    If diStateMouse.buttons(1) = 128 Then SleepNum = SleepNum + 1

End If

Sleep (SleepNum)
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -