Python 坦克大战游戏:简易代码示例
以下是一个简单的坦克大战游戏的 Python 代码,利用了 Pygame 库:
import pygame
import random
# 初始化 Pygame
pygame.init()
# 设置屏幕大小
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
# 设置游戏标题
pygame.display.set_caption('Tank Game')
# 加载坦克图片
tank_image = pygame.image.load('tank.png')
enemy_image = pygame.image.load('enemy.png')
# 定义坦克类
class Tank:
def __init__(self, x, y, speed):
self.image = tank_image
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.speed = speed
self.direction = 'up'
def move(self):
if self.direction == 'up':
self.rect.y -= self.speed
elif self.direction == 'down':
self.rect.y += self.speed
elif self.direction == 'left':
self.rect.x -= self.speed
elif self.direction == 'right':
self.rect.x += self.speed
def draw(self, surface):
surface.blit(self.image, self.rect)
# 定义敌人坦克类
class EnemyTank(Tank):
def __init__(self, x, y, speed):
super().__init__(x, y, speed)
self.direction = random.choice(['up', 'down', 'left', 'right'])
def update(self):
self.move()
if random.randint(1, 100) == 1:
self.direction = random.choice(['up', 'down', 'left', 'right'])
# 创建玩家坦克
player_tank = Tank(screen_width/2, screen_height/2, 5)
# 创建敌人坦克列表
enemy_tanks = []
for i in range(5):
x = random.randint(0, screen_width)
y = random.randint(0, screen_height)
enemy_tank = EnemyTank(x, y, 3)
enemy_tanks.append(enemy_tank)
# 游戏循环
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:
player_tank.direction = 'up'
elif event.key == pygame.K_DOWN:
player_tank.direction = 'down'
elif event.key == pygame.K_LEFT:
player_tank.direction = 'left'
elif event.key == pygame.K_RIGHT:
player_tank.direction = 'right'
# 移动玩家坦克
player_tank.move()
# 移动敌人坦克
for enemy_tank in enemy_tanks:
enemy_tank.update()
# 绘制画面
screen.fill((255, 255, 255))
player_tank.draw(screen)
for enemy_tank in enemy_tanks:
enemy_tank.draw(screen)
pygame.display.flip()
# 退出 Pygame
pygame.quit()
在这个代码中,我们定义了一个 Tank 类和一个 EnemyTank 类,分别表示玩家坦克和敌人坦克。这两个类都有 move() 和 draw() 方法,分别表示移动和绘制。敌人坦克还有一个 update() 方法,用于随机更新敌人坦克的行动方向。
在游戏循环中,我们检测玩家的按键事件,并移动玩家坦克。同时,我们也移动敌人坦克,并将玩家坦克和敌人坦克绘制到屏幕上。最后,我们使用 pygame.display.flip() 方法来更新屏幕。游戏循环会一直运行,直到玩家关闭游戏窗口。
这个代码只是一个简单的示例,可以作为学习 Python 游戏开发的基础。你可以根据自己的需求进行扩展,例如添加射击功能、爆炸效果、得分系统等等。
原文地址: https://www.cveoy.top/t/topic/lO51 著作权归作者所有。请勿转载和采集!