python小游戏——怀念经典坦克大战代码

♥️作者:小刘在这里

♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️夕阳下,是最美的,绽放,愿所有的美好,再疫情结束后如约而至。

目录

一.效果呈现

二,主代码

三.cfg

四.README


一.效果呈现

 

二,主代码

'''
Function:
    经典坦克大战小游戏
Author:
    Charles
微信公众号:
    Charles的皮卡丘
'''
import os
import cfg
import pygame
from modules import *


'''主函数'''
def main(cfg):
    # 游戏初始化
    pygame.init()
    pygame.mixer.init()
    screen = pygame.display.set_mode((cfg.WIDTH, cfg.HEIGHT))
    pygame.display.set_caption(cfg.TITLE)
    # 加载游戏素材
    sounds = {}
    for key, value in cfg.AUDIO_PATHS.items():
        sounds[key] = pygame.mixer.Sound(value)
        sounds[key].set_volume(1)
    # 开始界面
    is_dual_mode = gameStartInterface(screen, cfg)
    # 关卡数
    levelfilepaths = [os.path.join(cfg.LEVELFILEDIR, filename) for filename in sorted(os.listdir(cfg.LEVELFILEDIR))]
    # 主循环
    for idx, levelfilepath in enumerate(levelfilepaths):
        switchLevelIterface(screen, cfg, idx+1)
        game_level = GameLevel(idx+1, levelfilepath, sounds, is_dual_mode, cfg)
        is_win = game_level.start(screen)
        if not is_win: break
    is_quit_game = gameEndIterface(screen, cfg, is_win)
    return is_quit_game


'''run'''
if __name__ == '__main__':
    while True:
        is_quit_game = main(cfg)
        if is_quit_game:
            break

三.cfg

# Introduction
https://mp.weixin.qq.com/s/1xXULpT36P7LTO5HDbjptg

# Environment
```
OS: Windows10
Python: Python3.5+(have installed necessary dependencies)
```

# Usage
```
Step1:
pip install -r requirements.txt
Step2:
run "python Game5.py"
```

# Game Display
![giphy](demonstration/running.gif)

四.README

# Introduction
https://mp.weixin.qq.com/s/1xXULpT36P7LTO5HDbjptg

# Environment
```
OS: Windows10
Python: Python3.5+(have installed necessary dependencies)
```

# Usage
```
Step1:
pip install -r requirements.txt
Step2:
run "python Game5.py"
```

# Game Display
![giphy](demonstration/running.gif)

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 45
    评论
好的,以下是一个简单的 Python 坦克大战游戏的源代码,希望能对你有所帮助: ```python import pygame import random # 游戏屏幕大小和坦克大小 SCREEN_WIDTH = 700 SCREEN_HEIGHT = 500 TANK_WIDTH = 50 TANK_HEIGHT = 50 # 定义颜色 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) # 初始化 Pygame pygame.init() # 创建游戏窗口 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("坦克大战") # 加载坦克图片 tank_image = pygame.image.load("tank.png") # 定义坦克类 class Tank(pygame.sprite.Sprite): def __init__(self, x, y): super().__init__() self.image = tank_image self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y self.speed = 5 self.dir = "up" def update(self): if self.dir == "up": self.rect.y -= self.speed elif self.dir == "down": self.rect.y += self.speed elif self.dir == "left": self.rect.x -= self.speed elif self.dir == "right": self.rect.x += self.speed # 定义敌方坦克类 class EnemyTank(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = tank_image self.rect = self.image.get_rect() self.rect.x = random.randint(0, SCREEN_WIDTH - TANK_WIDTH) self.rect.y = random.randint(0, SCREEN_HEIGHT - TANK_HEIGHT) self.speed = 3 self.dir = random.choice(["up", "down", "left", "right"]) def update(self): if self.dir == "up": self.rect.y -= self.speed elif self.dir == "down": self.rect.y += self.speed elif self.dir == "left": self.rect.x -= self.speed elif self.dir == "right": self.rect.x += self.speed # 创建坦克和敌方坦克组 all_sprites = pygame.sprite.Group() tank = Tank(SCREEN_WIDTH // 2, SCREEN_HEIGHT - TANK_HEIGHT) all_sprites.add(tank) enemy_tanks = pygame.sprite.Group() for i in range(5): enemy_tank = EnemyTank() all_sprites.add(enemy_tank) enemy_tanks.add(enemy_tank) # 创建 Pygame 时钟对象 clock = pygame.time.Clock() # 游戏循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: tank.dir = "up" elif event.key == pygame.K_DOWN: tank.dir = "down" elif event.key == pygame.K_LEFT: tank.dir = "left" elif event.key == pygame.K_RIGHT: tank.dir = "right" # 更新坦克和敌方坦克 all_sprites.update() # 绘制背景 screen.fill(WHITE) # 绘制坦克和敌方坦克 all_sprites.draw(screen) # 检测坦克和敌方坦克是否碰撞 if pygame.sprite.spritecollide(tank, enemy_tanks, True): running = False # 刷新屏幕 pygame.display.flip() # 控制游戏帧率 clock.tick(60) # 退出 Pygame pygame.quit() ``` 以上代码实现了一个简单的坦克大战游戏,玩家控制一个坦克通过键盘移动,敌方坦克随机移动并在碰撞时消失,如果玩家的坦克和敌方坦克发生碰撞,则游戏结束。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘在C站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值