以下是一个简单的坦克大战游戏的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代码

原文地址: http://www.cveoy.top/t/topic/ATd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录