用python写一个跳恐龙小游戏有注释
时间: 2024-03-14 16:43:12 浏览: 180
好的,我来给你写一个跳恐龙小游戏,附带注释说明:
```python
import pygame # 导入pygame模块
import random # 导入random模块
# 定义一些常量
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 200
GROUND_WIDTH = SCREEN_WIDTH
GROUND_HEIGHT = 50
GROUND_POS = (0, SCREEN_HEIGHT - GROUND_HEIGHT)
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLAYER_POS = (50, SCREEN_HEIGHT - PLAYER_HEIGHT - GROUND_HEIGHT)
CLOUD_WIDTH = 50
CLOUD_HEIGHT = 30
CLOUD_POS = (SCREEN_WIDTH - CLOUD_WIDTH, 30)
OBSTACLE_WIDTH = 30
OBSTACLE_HEIGHT = 50
OBSTACLE_POS = (SCREEN_WIDTH, SCREEN_HEIGHT - OBSTACLE_HEIGHT - GROUND_HEIGHT)
# 初始化pygame
pygame.init()
# 创建游戏窗口
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Jump Dinosaur")
# 加载图片
player_img = pygame.image.load("dinosaur.png")
ground_img = pygame.image.load("ground.png")
cloud_img = pygame.image.load("cloud.png")
obstacle_img = pygame.image.load("obstacle.png")
# 定义函数:绘制游戏元素
def draw_element():
# 绘制背景
screen.fill((255, 255, 255))
# 绘制地面
screen.blit(ground_img, GROUND_POS)
# 绘制云彩
screen.blit(cloud_img, CLOUD_POS)
# 绘制障碍物
screen.blit(obstacle_img, OBSTACLE_POS)
# 绘制恐龙
screen.blit(player_img, PLAYER_POS)
# 定义函数:更新游戏元素
def update_element():
# 更新云彩位置
cloud_x, cloud_y = CLOUD_POS
if cloud_x + CLOUD_WIDTH < 0:
cloud_x = SCREEN_WIDTH
else:
cloud_x -= 5
CLOUD_POS = (cloud_x, cloud_y)
# 更新障碍物位置
obstacle_x, obstacle_y = OBSTACLE_POS
if obstacle_x + OBSTACLE_WIDTH < 0:
obstacle_x = SCREEN_WIDTH
else:
obstacle_x -= 5
OBSTACLE_POS = (obstacle_x, obstacle_y)
# 定义函数:判断游戏是否结束
def is_game_over():
player_x, player_y = PLAYER_POS
obstacle_x, obstacle_y = OBSTACLE_POS
if player_x + PLAYER_WIDTH > obstacle_x and \
player_x < obstacle_x + OBSTACLE_WIDTH and \
player_y + PLAYER_HEIGHT > obstacle_y:
return True
else:
return False
# 开始游戏
while True:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
PLAYER_POS = (PLAYER_POS[0], SCREEN_HEIGHT - PLAYER_HEIGHT - GROUND_HEIGHT - 50)
# 绘制游戏元素
draw_element()
# 更新游戏元素
update_element()
# 判断游戏是否结束
if is_game_over():
print("Game Over!")
pygame.quit()
exit()
# 刷新屏幕
pygame.display.update()
```
注释说明:
1. 导入pygame和random模块。
2. 定义一些常量,包括游戏窗口大小、地面大小和位置、恐龙大小和位置、云彩大小和位置、障碍物大小和位置等。
3. 初始化pygame,并创建游戏窗口。
4. 加载图片,并定义绘制游戏元素的函数draw_element(),包括绘制背景、地面、云彩、障碍物和恐龙。
5. 定义更新游戏元素的函数update_element(),包括更新云彩和障碍物的位置。
6. 定义判断游戏是否结束的函数is_game_over(),如果恐龙与障碍物发生碰撞,则游戏结束。
7. 进入游戏循环,处理游戏事件,包括按下空格键使恐龙跳跃。
8. 在游戏循环中,先绘制游戏元素,然后更新游戏元素。
9. 在游戏循环中,判断游戏是否结束,如果结束,则打印提示信息,退出pygame和程序。
10. 在游戏循环中,刷新屏幕,使更新后的游戏元素显示在屏幕上。
阅读全文