python 创建一个窗口 在上面画一个小人并让他随着键盘方向键的按下而左右上下的移动 在屏幕上方随机位置生成向下移动的障碍 如果小人碰到障碍就会淘汰 完整的代码
时间: 2024-09-08 07:01:13 浏览: 26
Python 中创建这样的游戏通常会涉及到 Pygame 库,它是一个非常流行的用于制作 2D 游戏的框架。下面是一个简单的示例,演示如何使用 Pygame 实现上述功能:
```python
import pygame
import random
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
screen_width = 800
screen_height = 600
win = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Moving Character Game")
# 小人的设置
player_size = 50
player_pos = [screen_width // 2, screen_height - player_size]
player_speed = [0, -5] # 默认向下的速度
# 障碍物的设置
obstacle_size = 50
obstacles = []
obstacle_speed = -3 # 障碍物下落的速度
# 主循环
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player_pos[0] -= player_speed[0]
elif event.key == pygame.K_RIGHT:
player_pos[0] += player_speed[0]
# 随机生成新的障碍物
if len(obstacles) < 5:
obstacles.append([random.randint(0, screen_width - obstacle_size), 0])
# 移动障碍物
for obst in obstacles:
obst[1] += obstacle_speed
if obst[1] > screen_height + obstacle_size:
obst[1] = 0
obst[0] = random.randint(0, screen_width - obstacle_size)
# 绘制背景、小人和障碍物
win.fill((0, 0, 0)) # 黑色背景
for obst in obstacles:
pygame.draw.rect(win, (255, 0, 0), pygame.Rect(obst[0], obst[1], obstacle_size, obstacle_size))
pygame.draw.rect(win, (255, 255, 0), pygame.Rect(player_pos[0], player_pos[1], player_size, player_size))
# 检查碰撞
for obst in obstacles:
if obst[0] < player_pos[0] + player_size and obst[0] + obstacle_size > player_pos[0]:
if obst[1] < player_pos[1] + player_size and obst[1] + obstacle_size > player_pos[1]:
running = False
break
# 更新显示
pygame.display.update()
# 游戏结束
pygame.quit()
```
这个代码只是一个基础版本,为了简化,它并没有处理一些细节如碰撞检测算法优化、按键响应等高级功能。如果你想让这个游戏更完整,可以进一步添加得分系统、角色动画、暂停等功能。