Python 跳一跳游戏:简单示例代码
以下是一个使用 Python 编写的简单的'跳一跳'游戏示例代码:
import pygame
import random
# 游戏窗口的大小
WINDOW_WIDTH = 480
WINDOW_HEIGHT = 800
# 颜色定义
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
# 小人的位置和大小
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
# 方块的大小和速度
BLOCK_WIDTH = 100
BLOCK_HEIGHT = 20
BLOCK_SPEED = 3
ppygame.init()
window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
clock = pygame.time.Clock()
def draw_player(x, y):
pygame.draw.rect(window, RED, (x, y, PLAYER_WIDTH, PLAYER_HEIGHT))
def draw_block(x, y):
pygame.draw.rect(window, BLACK, (x, y, BLOCK_WIDTH, BLOCK_HEIGHT))
def collision_check(player_x, player_y, block_x, block_y):
if player_x + PLAYER_WIDTH > block_x and player_x < block_x + BLOCK_WIDTH:
if player_y + PLAYER_HEIGHT > block_y and player_y < block_y + BLOCK_HEIGHT:
return True
return False
def game_over():
font = pygame.font.Font(None, 36)
text = font.render('Game Over', True, BLACK)
window.blit(text, (WINDOW_WIDTH/2 - 80, WINDOW_HEIGHT/2 - 18))
pygame.display.update()
pygame.time.wait(2000)
def game_loop():
player_x = WINDOW_WIDTH/2 - PLAYER_WIDTH/2
player_y = WINDOW_HEIGHT - PLAYER_HEIGHT
block_x = random.randint(0, WINDOW_WIDTH - BLOCK_WIDTH)
block_y = 0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.MOUSEBUTTONDOWN:
player_y -= 100
player_y += 5
window.fill(WHITE)
draw_player(player_x, player_y)
draw_block(block_x, block_y)
block_y += BLOCK_SPEED
if block_y > WINDOW_HEIGHT:
block_y = 0
block_x = random.randint(0, WINDOW_WIDTH - BLOCK_WIDTH)
if collision_check(player_x, player_y, block_x, block_y):
game_over()
pygame.display.update()
clock.tick(60)
game_loop()
这个示例代码使用 Pygame 库创建了一个简单的游戏窗口,并实现了以下功能:
- 小人通过鼠标点击来跳跃。
- 小人会不断下落,玩家需要控制小人跳到从上方滚动过来的方块上。
- 如果小人没有成功跳到方块上,则游戏结束。
请注意,以上代码只是一个简单的示例,可能存在一些不足之处,比如没有添加计分系统,游戏结束后没有重新开始等。你可以根据自己的需求进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/qvBC 著作权归作者所有。请勿转载和采集!