请你用python编一个射击游戏
以下是一个简单的射击游戏的Python代码示例:
import pygame
import random
# 初始化游戏
pygame.init()
# 设置游戏窗口尺寸
window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("射击游戏")
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 加载玩家飞船图片
player_img = pygame.image.load("player.png")
player_width = 50
player_height = 50
# 加载子弹图片
bullet_img = pygame.image.load("bullet.png")
bullet_width = 10
bullet_height = 30
# 加载敌人图片
enemy_img = pygame.image.load("enemy.png")
enemy_width = 50
enemy_height = 50
# 设置玩家初始位置
player_x = window_width / 2 - player_width / 2
player_y = window_height - player_height - 10
# 初始化子弹
bullet_x = 0
bullet_y = player_y
bullet_state = "ready" # "ready": 等待发射, "fire": 发射中
# 初始化敌人
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = random.randint(50, 150)
enemy_speed = 3
# 定义玩家飞船的移动速度
player_speed = 5
# 定义子弹的移动速度
bullet_speed = 5
# 游戏主循环
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 处理键盘按下事件
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player_x -= player_speed
if event.key == pygame.K_RIGHT:
player_x += player_speed
if event.key == pygame.K_SPACE:
if bullet_state == "ready":
bullet_x = player_x + player_width / 2 - bullet_width / 2
bullet_state = "fire"
# 更新玩家飞船位置
player_x = max(0, min(window_width - player_width, player_x))
# 更新子弹位置
if bullet_state == "fire":
bullet_y -= bullet_speed
if bullet_y <= 0:
bullet_state = "ready"
# 更新敌人位置
enemy_x += enemy_speed
if enemy_x <= 0 or enemy_x >= window_width - enemy_width:
enemy_speed *= -1
# 检测碰撞
if bullet_state == "fire" and bullet_x > enemy_x and bullet_x < enemy_x + enemy_width and bullet_y > enemy_y and bullet_y < enemy_y + enemy_height:
bullet_state = "ready"
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = random.randint(50, 150)
# 渲染界面
window.fill(white)
window.blit(player_img, (player_x, player_y))
window.blit(bullet_img, (bullet_x, bullet_y))
window.blit(enemy_img, (enemy_x, enemy_y))
pygame.display.update()
# 退出游戏
pygame.quit()
请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。你还需要准备好玩家飞船、子弹和敌人的图片,并将其命名为"player.png"、"bullet.png"和"enemy.png"放在与代码文件相同的目录下
原文地址: http://www.cveoy.top/t/topic/hQAb 著作权归作者所有。请勿转载和采集!