以下是一个简单的射击游戏的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"放在与代码文件相同的目录下

请你用python编一个射击游戏

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

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