用python代码写一个射击类小游戏
时间: 2023-12-17 13:24:18 浏览: 74
抱歉,作为AI语言模型,我无法提供游戏开发的完整代码。不过,我可以为您提供一个简单的游戏框架,供您参考:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 游戏窗口大小
WINDOW_WIDTH = 800
WINDOW_HEIGHT = 600
# 创建游戏窗口
screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption("射击游戏")
# 加载游戏资源
player_image = pygame.image.load("player.png").convert_alpha()
enemy_image = pygame.image.load("enemy.png").convert_alpha()
bullet_image = pygame.image.load("bullet.png").convert_alpha()
# 玩家初始位置
player_x = WINDOW_WIDTH // 2
player_y = WINDOW_HEIGHT - player_image.get_height()
# 子弹列表
bullets = []
# 敌人列表
enemies = []
# 游戏主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# 发射子弹
if event.type == pygame.MOUSEBUTTONDOWN:
bullet_x = player_x + player_image.get_width() // 2 - bullet_image.get_width() // 2
bullet_y = player_y
bullets.append([bullet_x, bullet_y])
# 移动玩家
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= 5
if keys[pygame.K_RIGHT] and player_x < WINDOW_WIDTH - player_image.get_width():
player_x += 5
# 移动子弹
for bullet in bullets:
bullet[1] -= 10
if bullet[1] < 0:
bullets.remove(bullet)
# 添加敌人
if len(enemies) < 5:
enemy_x = random.randint(0, WINDOW_WIDTH - enemy_image.get_width())
enemy_y = random.randint(-500, 0)
enemies.append([enemy_x, enemy_y])
# 移动敌人
for enemy in enemies:
enemy[1] += 5
if enemy[1] > WINDOW_HEIGHT:
enemies.remove(enemy)
# 碰撞检测
for bullet in bullets:
for enemy in enemies:
if bullet[0] < enemy[0] + enemy_image.get_width() and bullet[0] + bullet_image.get_width() > enemy[0] and bullet[1] < enemy[1] + enemy_image.get_height() and bullet[1] + bullet_image.get_height() > enemy[1]:
bullets.remove(bullet)
enemies.remove(enemy)
# 绘制游戏元素
screen.fill((255, 255, 255))
screen.blit(player_image, (player_x, player_y))
for bullet in bullets:
screen.blit(bullet_image, (bullet[0], bullet[1]))
for enemy in enemies:
screen.blit(enemy_image, (enemy[0], enemy[1]))
# 更新屏幕
pygame.display.update()
```
这是一个非常简单的射击游戏框架,包含了基本的游戏元素(玩家、子弹、敌人)和游戏逻辑(移动、碰撞检测、绘制等)。您可以根据自己的需求,对代码进行修改和扩展,添加更多的游戏元素和玩法。
阅读全文