当然可以!下面是一个简单的射击小游戏的Python代码示例:

import pygame
import random

# 初始化游戏
pygame.init()

# 设置游戏窗口的宽度和高度
screen_width = 800
screen_height = 600

# 创建游戏窗口
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("射击小游戏")

# 加载玩家图片
player_image = pygame.image.load("player.png")
player_width = 64
player_height = 64
player_x = screen_width / 2 - player_width / 2
player_y = screen_height - player_height

# 加载子弹图片
bullet_image = pygame.image.load("bullet.png")
bullet_width = 32
bullet_height = 32
bullet_x = 0
bullet_y = player_y
bullet_speed = 10
bullet_state = "ready"  # 子弹状态("ready"表示准备发射,"fire"表示正在飞行)

# 加载敌人图片
enemy_image = pygame.image.load("enemy.png")
enemy_width = 64
enemy_height = 64
enemy_x = random.randint(0, screen_width - enemy_width)
enemy_y = random.randint(50, 200)
enemy_speed = 2

# 分数
score = 0
font = pygame.font.Font("freesansbold.ttf", 32)
text_x = 10
text_y = 10

# 游戏结束标志
game_over = False

# 游戏主循环
while not game_over:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True

        # 监听键盘按键
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE and bullet_state == "ready":
                bullet_x = player_x + player_width / 2 - bullet_width / 2
                bullet_state = "fire"

    # 移动玩家
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player_x -= 5
    if keys[pygame.K_RIGHT]:
        player_x += 5

    # 移动子弹
    if bullet_state == "fire":
        bullet_y -= bullet_speed
        if bullet_y <= 0:
            bullet_y = player_y
            bullet_state = "ready"

    # 移动敌人
    enemy_x += enemy_speed
    if enemy_x <= 0 or enemy_x >= screen_width - enemy_width:
        enemy_speed *= -1
        enemy_y += 50

    # 碰撞检测
    if bullet_state == "fire":
        if bullet_x < enemy_x + enemy_width and bullet_x + bullet_width > enemy_x and bullet_y < enemy_y + enemy_height and bullet_y + bullet_height > enemy_y:
            bullet_y = player_y
            bullet_state = "ready"
            score += 1
            enemy_x = random.randint(0, screen_width - enemy_width)
            enemy_y = random.randint(50, 200)

    # 渲染屏幕
    screen.fill((0, 0, 0))
    screen.blit(player_image, (player_x, player_y))
    screen.blit(bullet_image, (bullet_x, bullet_y))
    screen.blit(enemy_image, (enemy_x, enemy_y))
    score_text = font.render("Score: " + str(score), True, (255, 255, 255))
    screen.blit(score_text, (text_x, text_y))
    pygame.display.update()

# 退出游戏
pygame.quit()

请注意,这只是一个简单的示例,你可以根据需要进行修改和扩展。同时,你需要自行准备玩家、子弹和敌人的图片资源,并将其命名为"player.png"、"bullet.png"和"enemy.png"

帮我写个射击小游戏的py代码

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

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