坦克大战的简易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()方法来更新屏幕。游戏循环会一直运行,直到玩家关闭游戏窗口。
原文地址: http://www.cveoy.top/t/topic/ATd 著作权归作者所有。请勿转载和采集!