diff --git a/bullet.png b/bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..40a292e55c6e13a2570870241a77d20d5c6cc233 Binary files /dev/null and b/bullet.png differ diff --git a/main.py b/main.py index 4c0c135f61696bcf42c375ca5ab62aa5b105afc8..34093454f3ac58fd5e5ab4fa3c46fa42b0cd455d 100644 --- a/main.py +++ b/main.py @@ -1 +1,89 @@ -print('欢迎来到 InsCode') \ No newline at end of file +import pygame + +# 初始化Pygame +pygame.init() + +# 设置游戏窗口尺寸 +window_size = (800, 600) +screen = pygame.display.set_mode(window_size) + +# 设置游戏标题 +pygame.display.set_caption('Tank Battle') + +# 设置游戏帧率 +clock = pygame.time.Clock() +fps = 60 + +# 加载游戏资源 +tank_image = pygame.image.load('tank.png') +bullet_image = pygame.image.load('bullet.png') + +# 定义坦克类 +class Tank(pygame.sprite.Sprite): + def __init__(self, x, y): + pygame.sprite.Sprite.__init__(self) + self.image = tank_image + self.rect = self.image.get_rect() + self.rect.x = x + self.rect.y = y + self.speed = 5 + + def update(self, keys): + if keys[pygame.K_LEFT]: + self.rect.x -= self.speed + elif keys[pygame.K_RIGHT]: + self.rect.x += self.speed + elif keys[pygame.K_UP]: + self.rect.y -= self.speed + elif keys[pygame.K_DOWN]: + self.rect.y += self.speed + +# 定义子弹类 +class Bullet(pygame.sprite.Sprite): + def __init__(self, x, y): + pygame.sprite.Sprite.__init__(self) + self.image = bullet_image + self.rect = self.image.get_rect() + self.rect.x = x + self.rect.y = y + self.speed = 10 + + def update(self): + self.rect.y -= self.speed + +# 创建游戏对象 +player_tank = Tank(400, 300) +all_sprites = pygame.sprite.Group() +all_sprites.add(player_tank) + +bullets = pygame.sprite.Group() + +# 游戏循环 +while True: + # 处理事件 + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + quit() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_SPACE: + bullet = Bullet(player_tank.rect.x + 32, player_tank.rect.y - 16) + bullets.add(bullet) + all_sprites.add(bullet) + + # 更新游戏对象 + keys = pygame.key.get_pressed() + player_tank.update(keys) + + bullets.update() + + # 绘制游戏界面 + screen.fill((255, 255, 255)) + all_sprites.draw(screen) + + # 更新屏幕显示 + pygame.display.update() + + # 限制帧数 + clock.tick(fps) + diff --git a/requirements.txt b/requirements.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..231dd178515adb05e10e89840af66f0a5ffd82f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1 @@ +pygame \ No newline at end of file diff --git a/tank.png b/tank.png new file mode 100644 index 0000000000000000000000000000000000000000..8bddfa1f120664324ab5dea62196ecd371f5b1b1 Binary files /dev/null and b/tank.png differ