page contents

Python教程-用python写了一个“跳一跳”游戏!

在 Python 中实现一个简单的 "跳一跳" 游戏,我们可以使用 pygame 库来创建游戏界面并处理游戏逻辑。虽然这个示例不会是一个完全复杂的游戏,但它会展示如何用 Python 编写一个基本的跳跃游戏。

attachments-2024-12-bgfVGBMR674e60c31cac9.pngPython 中实现一个简单的 "跳一跳" 游戏,我们可以使用 pygame 库来创建游戏界面并处理游戏逻辑。虽然这个示例不会是一个完全复杂的游戏,但它会展示如何用 Python 编写一个基本的跳跃游戏。

安装 pygame

首先,你需要安装 pygame 库。如果没有安装,可以使用以下命令进行安装:

pip install pygame

游戏逻辑概述

游戏角色会在屏幕上从一个平台跳到另一个平台。

玩家可以通过按下空格键或鼠标点击来控制角色的跳跃。

如果角色没有跳到正确的地方(平台之间的距离不合适),就会掉落并游戏结束。

代码实现

下面是一个简单的 "跳一跳" 游戏实现:

import pygame

import random

import time

# 初始化 pygame

pygame.init()

# 设置游戏窗口

screen_width = 600

screen_height = 400

screen = pygame.display.set_mode((screen_width, screen_height))

pygame.display.set_caption("跳一跳游戏")

# 定义颜色

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

# 定义时钟

clock = pygame.time.Clock()

# 定义角色参数

player_width = 50

player_height = 50

player_x = screen_width // 4

player_y = screen_height - player_height - 10

player_velocity = 0  # 垂直速度

gravity = 0.5  # 重力加速度

# 定义平台参数

platform_width = 100

platform_height = 10

platforms = []

# 跳跃控制

jumping = False

jump_force = 10  # 初始跳跃力度

# 游戏循环标志

running = True

def create_platforms():

    """生成随机平台"""

    global platforms

    platforms = []

    for i in range(5):

        platform_x = random.randint(50, screen_width - platform_width - 50)

        platform_y = random.randint(100, screen_height - 50)

        platforms.append(pygame.Rect(platform_x, platform_y, platform_width, platform_height))

def draw_player():

    """绘制玩家"""

    pygame.draw.rect(screen, RED, pygame.Rect(player_x, player_y, player_width, player_height))

def draw_platforms():

    """绘制平台"""

    for platform in platforms:

        pygame.draw.rect(screen, GREEN, platform)

def check_collisions():

    """检查是否与平台碰撞"""

    global player_y, player_velocity

    player_rect = pygame.Rect(player_x, player_y, player_width, player_height)

    on_platform = False

    for platform in platforms:

        if player_rect.colliderect(platform):

            if player_velocity > 0 and player_y + player_height <= platform.top:

                player_y = platform.top - player_height  # 在平台上

                player_velocity = 0  # 重置垂直速度

                on_platform = True

                break

    if not on_platform:
        player_velocity += gravity  # 若不在平台上,受重力影响

def jump():
    """跳跃控制"""
    global player_velocity, jumping
    if jumping:
        player_velocity = -jump_force  # 初始跳跃速度向上

def game_over():
    """游戏结束"""
    font = pygame.font.SysFont("Arial", 40)
    game_over_text = font.render("游戏结束", True, BLACK)
    screen.blit(game_over_text, (screen_width // 3, screen_height // 3))
    pygame.display.flip()
    time.sleep(2)

# 创建初始平台
create_platforms()

# 游戏主循环
while running:
    screen.fill(WHITE)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE and not jumping:
                jumping = True
                jump()

    # 控制玩家的跳跃
    if player_y + player_height < screen_height:
        player_y += player_velocity  # 更新玩家的垂直位置

    check_collisions()

    # 绘制玩家、平台
    draw_player()
    draw_platforms()

    # 检查是否掉出屏幕
    if player_y > screen_height:
        game_over()
        running = False

    # 更新游戏界面
    pygame.display.flip()

    # 控制游戏帧率
    clock.tick(60)

# 退出 pygame
pygame.quit()

代码解析
初始化和设置:
使用 pygame.init() 初始化 Pygame。
设置游戏屏幕的宽度和高度,创建游戏窗口。
定义了玩家、平台等对象的颜色和大小。
平台生成:
create_platforms() 函数生成了多个随机位置的绿色平台。玩家需要从一个平台跳到下一个平台。
跳跃控制:
jump() 函数通过控制 player_velocity 来控制玩家跳跃的高度。按下空格键时,玩家会向上跳跃。
碰撞检测:
check_collisions() 函数检查玩家是否与平台发生碰撞。如果玩家的矩形与平台的矩形碰撞,则玩家会停留在平台上,跳跃停止。如果没有碰撞,玩家会继续下落,重力加速。
游戏结束:
如果玩家掉出屏幕下方,游戏结束,显示 "游戏结束" 的文本,并停留 2 秒。
游戏循环:
通过 while running: 来持续运行游戏,监听用户的输入,更新游戏状态,绘制玩家和平台,并检测是否发生游戏结束。
运行游戏
在运行该代码时,你会看到一个简单的“跳一跳”游戏窗口。玩家通过按下空格键来控制角色的跳跃,目标是跳到下一个平台。如果没跳到平台,就会掉落并结束游戏。
改进和扩展
增加得分机制:可以记录跳跃的次数或角色跳过的平台数。
增加多样化的难度:平台可以逐渐增多或移动,增加游戏难度。
音效和动画:为跳跃、着陆等动作添加音效和动画效果。
背景和美术资源:可以使用图像替代简单的矩形,为角色和平台添加更丰富的背景和视觉效果。
这是一个非常简单的实现,适合用作 Python 游戏开发的入门示例。如果你对游戏开发更感兴趣,可以继续扩展这个游戏,增加更多的功能和特性!

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2024-12-03 09:37
  • 阅读 ( 70 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1658 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1658 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章