小简介:
《坦克大战》,1985年由日本开发商南梦宫(Namco)开发,是第一款可以双打
的红白机游戏。当时使用的还是小霸王。
《坦克大战》红白机原版共有35关,每一关的地形和障碍都不同。
最后一关,你有没有打通关过?(小声bb,我这个游戏水平可能达不到!)
正文
1)游戏规则:
游戏过程是这样的,玩家操作坦克消灭电脑控制的坦克,并保护自己基地。基地图
标是一只傲娇的张着翅膀的老鹰。
双打的时候,为了看谁刷得分高,都争着打坦克,大本营的老鹰被烤熟了都不
管。。坦克大战中的宝贝有战车、星星、时钟等,小编当时最喜欢的是时钟,敌不
能动我能动的感觉妙极了。图中的坦克图标吃了是
可以加一条命的,当时为了抢宝贝都抢先把队友的坦克打晕。。。
2)环境安装
Python3、Pycharm、Pygame、以及自带或自定义的模块。
pip install +模块名 或pip install -i https://pypi.douban.com/simple/ +模块名
3)代码演示
(之前不是写过的嘛,今天的话就是修改下的,这种小游戏代码肯定都很多的,所
以这里直接贴主程序了。
需要完整的打包好的代码跟素材的话
点击这里,包含100个Python项目源码!
主程序:
import pygame
import random
# 游戏窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
# 颜色定义
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# 初始化 pygame
pygame.init()
# 创建游戏窗口
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("坦克大战")
# 游戏时钟
clock = pygame.time.Clock()
class Tank:
def __init__(self, x, y, speed, color, direction):
self.x = x
self.y = y
self.speed = speed
self.color = color
self.direction = direction
self.health = 100
def move_up(self):
if self.y > 0:
self.y -= self.speed
def move_down(self):
if self.y < SCREEN_HEIGHT - 50:
self.y += self.speed
def move_left(self):
if self.x > 0:
self.x -= self.speed
def move_right(self):
if self.x < SCREEN_WIDTH - 50:
self.x += self.speed
def shoot(self):
bullet = Bullet(self.x + 20, self.y + 20, self.direction)
return bullet
def draw(self):
pygame.draw.rect(screen, self.color, (self.x, self.y, 50, 50))
class Bullet:
def __init__(self, x, y, direction):
self.x = x
self.y = y
self.direction = direction
self.speed = 10
def move(self):
if self.direction == "up":
self.y -= self.speed
elif self.direction == "down":
self.y += self.speed
elif self.direction == "left":
self.x -= self.speed
elif self.direction == "right":
self.x += self.speed
def draw(self):
pygame.draw.rect(screen, RED, (self.x, self.y, 10, 10))
def check_collision(self, tanks):
for tank in tanks:
if (self.x >= tank.x and self.x <= tank.x + 50 and self.y >= tank.y and self.y <= tank.y + 50) and tank!= self.owner:
tank.health -= 20
return True
return False
def main():
# 创建玩家坦克
player_tank = Tank(375, 500, 5, GREEN, "up")
# 敌方坦克列表
enemy_tanks = [Tank(random.randint(0, SCREEN_WIDTH - 50), random.randint(0, 200), 3, RED, "up") for _ in range(5)]
# 子弹列表
bullets = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_UP]:
player_tank.direction = "up"
player_tank.move_up()
if keys_pressed[pygame.K_DOWN]:
player_tank.direction = "down"
player_tank.move_down()
if keys_pressed[pygame.K_LEFT]:
player_tank.direction = "left"
player_tank.move_left()
if keys_pressed[pygame.K_RIGHT]:
player_tank.direction = "right"
player_tank.move_right()
if keys_pressed[pygame.K_SPACE]:
bullets.append(player_tank.shoot())
# 敌方坦克移动和射击
for enemy_tank in enemy_tanks:
direction = random.choice(["up", "down", "left", "right"])
if direction == "up":
enemy_tank.move_up()
elif direction == "down":
enemy_tank.move_down()
elif direction == "left":
enemy_tank.move_left()
elif direction == "right":
enemy_tank.move_right()
if random.randint(0, 100) < 5:
bullets.append(enemy_tank.shoot())
# 子弹移动和碰撞检测
for bullet in bullets:
bullet.move()
if bullet.x < 0 or bullet.x > SCREEN_WIDTH or bullet.y < 0 or bullet.y > SCREEN_HEIGHT:
bullets.remove(bullet)
elif bullet.check_collision(enemy_tanks):
bullets.remove(bullet)
elif bullet.check_collision([player_tank]):
bullets.remove(bullet)
# 绘制背景
screen.fill(BLACK)
# 绘制玩家坦克
player_tank.draw()
# 绘制敌方坦克
for enemy_tank in enemy_tanks:
enemy_tank.draw()
# 绘制子弹
for bullet in bullets:
bullet.draw()
# 显示生命值
font = pygame.font.SysFont(None, 36)
text = font.render(f"Player Health: {player_tank.health}", 1, WHITE)
screen.blit(text, (10, 10))
pygame.display.flip()
clock.tick(60)
pygame.quit()
if __name__ == "__main__":
main()
4)效果展示
【Pygame实战】经典的坦克大战游戏,勾起童年无限回忆!
静态截图效果——
游戏界面:
第一关单人游戏:
双人第一关游戏:
总结
好啦!中文版的坦克大战都看的懂了哈,想咋玩儿咋玩儿。
这是程序员的浪漫,这也是我们的浪漫。
往期也有更多好玩儿的游戏,欢迎阅读哦~如有帮助到你,记得三连的啦
最后 如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,【点击这里】领取!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
① Python所有方向的学习路线图
,清楚各个方向要学什么东西
② 100多节Python课程视频
,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例
,学习不再是只会理论
④ 华为出品独家Python漫画教程
,手机也能学习
⑤ 历年互联网企业Python面试真题
,复习时非常方便******