Pygame游戏实战九:跳跃小游戏

介绍模块

本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个类似与跳跃游戏,但在游戏中并没有进行跳跃,而是通过键盘进行控制。

最小开发框架

详情请看此文章:
Pygame游戏模块介绍二:最小开发框架代码_pygame最小开发框架_牧子川的博客-CSDN博客

Pygame和sys模块

import pygame # 制作游戏时要使用的模块
import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块

random模块

需要在屏幕上随机生成位置

from random import randint

详情请看此文章:Pygame游戏模块介绍一:random模块简介_random 范围_牧子川的博客-CSDN博客

相关功能  

【童年游戏】跳跃小游戏

初始化方块

绘制角色和障碍物

def draw_player():
    pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], player_size, player_size))


def draw_obstacles():
    for obstacle in obstacles:
        pygame.draw.rect(screen, RED, (obstacle[0], obstacle[1], obstacle_size, obstacle_size))

检测碰撞

当角色与障碍物发生碰撞时,则游戏结束


    for obstacle in obstacles:
        if (
                player_pos[1] + player_size >= obstacle[1]
                and player_pos[1] <= obstacle[1] + obstacle_size
                and player_pos[0] + player_size >= obstacle[0]
                and player_pos[0] <= obstacle[0] + obstacle_size
        ):
            pygame.quit()
            sys.exit()

键盘控制

if event.key == pygame.K_UP and player_pos[1] - player_speed >= 0:
   player_pos[1] -= player_speed
elif event.key == pygame.K_DOWN and player_pos[1] + player_size + player_speed <= HEIGHT:
   player_pos[1] += player_speed

障碍物处理

    # 移动障碍物
    for obstacle in obstacles:
        obstacle[0] -= obstacle_speed

    # 生成新的障碍物
    if random.randint(1, 100) < 10:  # 控制障碍物生成的频率
        new_obstacle = [WIDTH, random.randint(0, HEIGHT - obstacle_size)]
        obstacles.append(new_obstacle)

图片界面

扩展可添加功能

1.对游戏中移动方式进行改进为跳跃

2.增加更加复制的关卡

3.增加时间限制

4.增加音效

5.改变角色和障碍物的形状

源码获取

PyGame/跳跃小游戏 at main · mzc421/PyGame (github.com)

 欢迎关注我的公众号:@AI算法与电子竞赛    

​​​

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

猜你喜欢

转载自blog.csdn.net/qq_48764574/article/details/134864677