【Pygame小游戏(6)——游戏主程序(1)】

 1、源码来源:

wangxingyao/TankWar: 小游戏坦克大战(python + pygame) (github.com)icon-default.png?t=O83Ahttps://github.com/wangxingyao/TankWar?tab=readme-ov-file

2、导入和初始化:

1、代码
import pygame
import sys
import traceback
import wall
import myTank
import enemyTank
import food
2、这一部分导入了游戏所需的模块:
  • pygame: 一个用于Python的游戏开发库。

  • sys: 用于处理系统功能,例如退出游戏。

  • traceback: 用于调试,捕获和打印错误的堆栈信息。

  • wall, myTank, enemyTank, 和 food: 游戏中特定的模块,分别处理墙体、我方坦克、敌方坦克和食物/道具。

2. 主函数初始化:

1、代码
def main():
    pygame.init()
    pygame.mixer.init()
  • pygame.init() 初始化所有 pygame 模块。

  • pygame.mixer.init() 初始化音效模块,处理游戏中的音效和背景音乐。

4、显示设置:

1、代码
    resolution = 630, 630
    screen = pygame.display.set_mode(resolution)
    pygame.display.set_caption("Tank War ")
  • 设置游戏窗口的分辨率为 630x630 像素。

  • 将窗口标题设为“Tank War”。

5. 加载资源(图片和音效):

1、代码:
    background_image = pygame.image.load(r"..\image\background.png")
    home_image = pygame.image.load(r"..\image\home.png")
    home_destroyed_image = pygame.image.load(r"..\image\home_destroyed.png")
    bang_sound = pygame.mixer.Sound(r"..\music\bang.wav")
    bang_sound.set_volume(1)
    fire_sound = pygame.mixer.Sound(r"..\music\Gunfire.wav")
    start_sound = pygame.mixer.Sound(r"..\music\start.wav")
    start_sound.play()
  • 加载游戏中的图片资源,如背景图片、家园图片、被摧毁的家园图片。

  • 加载并配置不同的音效,包括爆炸声、开火声等。

  • 游戏开始时播放启动音效。

2、拓展:

1、如果你想在游戏启动时播放某个声音文件,直接在相应的代码行后面调用 start_sound.play() 方法即可。

你已经加载了 start.wav 文件,并且在加载完成后已经通过 start_sound.play() 来播放该声音文件。因此,你的代码中确实是通过这行代码在游戏启动时播放音效的。

如果你需要其他音效文件在游戏启动时播放,只需按照类似的方式来加载并调用 play() 方法。例如,如果你想播放 fire_sound(开火音效)文件,你可以这样做:

fire_sound = pygame.mixer.Sound(r"..\music\Gunfire.wav")
fire_sound.play()  # 在这里播放开火音效

这样,游戏启动时会播放 Gunfire.wav 开火音效。

3、注意事项

  • play() 方法会播放音效一次。如果你希望音效循环播放,可以使用 play(-1),这样声音文件会无限循环播放,直到手动停止。

例如:

start_sound.play(-1)  # 使启动音效无限循环播放

通过这种方式,可以在游戏启动时控制任意音效的播放。

6、创建坦克和子弹的精灵组:

1、代码:
    allTankGroup = pygame.sprite.Group()
    mytankGroup = pygame.sprite.Group()
    allEnemyGroup = pygame.sprite.Group()
    redEnemyGroup = pygame.sprite.Group()
    greenEnemyGroup = pygame.sprite.Group()
    otherEnemyGroup = pygame.sprite.Group()
    enemyBulletGroup = pygame.sprite.Group()

创建精灵组,用于管理和组织坦克和子弹。这有助于简化碰撞检测和渲染。

7、创建地图、坦克和敌人::

1、代码:
    bgMap = wall.Map()
    prop = food.Food()
    myTank_T1 = myTank.MyTank(1)
    allTankGroup.add(myTank_T1)
    mytankGroup.add(myTank_T1)
    myTank_T2 = myTank.MyTank(2)
    allTankGroup.add(myTank_T2)
    mytankGroup.add(myTank_T2)
  • 创建地图对象 bgMap 和食物/道具 prop
  • 创建两个玩家坦克 myTank_T1myTank_T2,并将它们添加到坦克精灵组中。

继续看下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值