首页 > 其他分享 >使用 Pygame 创建简单的移动方块游戏

使用 Pygame 创建简单的移动方块游戏

时间:2024-08-20 16:54:00浏览次数:17  
标签:Pygame 游戏 方块 pygame velocity block size

Pygame 是一个用于开发图形和多媒体应用的优秀 Python 库。

下面,我们将逐步解释如何创建一个简单的游戏,其中一个蓝色方块可以在屏幕上移动。

 

安装 Pygame

首先,确保你已经安装了 Pygame。可以通过以下命令安装:

pip install pygame

 

游戏结构

1. 初始化 Pygame

开始时,需要导入并初始化 Pygame 库:

import pygame
pygame.init()

pygame.init() 函数初始化所有导入的 Pygame 模块,这对于任何 Pygame 应用都是必要的。

 

 

2.设置屏幕

设置游戏窗口的大小,并创建一个屏幕对象:

width, height = 640, 480
screen = pygame.display.set_mode((width, height))

3. 定义颜色

设置游戏中用到的颜色:

black = (0, 0, 0)
blue = (0, 0, 255)

颜色使用 RGB 值定义,black 是黑色背景,blue 是方块的颜色。

4.方块参数

初始化方块的大小、位置和速度:

block_size = 20
x, y = width // 2, height // 2
velocity = 5
  • block_size 定义方块的大小。
  • (x, y) 是方块的初始位置,设置在屏幕中央。
  • velocity 是方块的移动速度。

5. 游戏主循环

创建一个循环以保持游戏运行:

running = True
while running:
    pygame.time.delay(100)  # 控制游戏速度

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
  • pygame.time.delay(100) 控制游戏循环的速度,使游戏以一定的帧率运行。
  • 监听事件,如果用户关闭窗口 (pygame.QUIT),则退出循环。

6. 获取按键输入

检测键盘按键以移动方块:

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    x -= velocity
if keys[pygame.K_RIGHT]:
    x += velocity
if keys[pygame.K_UP]:
    y -= velocity
if keys[pygame.K_DOWN]:
    y += velocity
  • pygame.key.get_pressed() 返回当前所有按键的状态。
  • 根据按键更新方块的坐标。

7. 边界检测

确保方块不会移出屏幕:

x = max(0, min(x, width - block_size))
y = max(0, min(y, height - block_size))

使用 max 和 min 函数限制方块在屏幕范围内。

8. 绘制和更新屏幕

用新的位置绘制方块并更新显示:

screen.fill(black)
pygame.draw.rect(screen, blue, (x, y, block_size, block_size))
pygame.display.update()
  • screen.fill(black) 清除屏幕。
  • pygame.draw.rect() 绘制方块。
  • pygame.display.update() 更新屏幕显示。

9. 退出 Pygame

当游戏循环结束时,退出 Pygame:

pygame.quit()

退出 Pygame,释放资源。

以下是完整的代码:

import pygame

# 初始化 Pygame
pygame.init()

# 设置屏幕大小
width, height = 640, 480
screen = pygame.display.set_mode((width, height))

# 定义颜色
black = (0, 0, 0)
blue = (0, 0, 255)

# 方块参数
block_size = 20
x, y = width // 2, height // 2
velocity = 5

# 游戏主循环
running = True
while running:
    pygame.time.delay(100)  # 控制游戏速度

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 获取按键
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        x -= velocity
    if keys[pygame.K_RIGHT]:
        x += velocity
    if keys[pygame.K_UP]:
        y -= velocity
    if keys[pygame.K_DOWN]:
        y += velocity

    # 防止方块移出屏幕
    x = max(0, min(x, width - block_size))
    y = max(0, min(y, height - block_size))

    # 绘制
    screen.fill(black)
    pygame.draw.rect(screen, blue, (x, y, block_size, block_size))
    pygame.display.update()

pygame.quit()

运行步骤

  1. 确保安装 Pygame:在命令行中运行 pip install pygame。
  2. 保存代码:将代码复制到一个 .py 文件中。
  3. 运行代码:在命令行中执行 python yourfile.py。

功能说明

  • 移动方块:使用方向键控制方块在屏幕上移动。
  • 边界限制:确保方块不会移出屏幕边界。
  • 游戏循环:通过 while running 循环保持游戏运行,pygame.time.delay(100) 控制游戏速度。

通过这段代码,我们创建了一个简单的 Pygame 程序,展示了如何在屏幕上绘制和移动一个方块。

你可以在此基础上继续扩展功能,比如添加障碍物、计分机制或其他元素来提升游戏的复杂性和趣味性。

希望这段代码能帮助你理解 Pygame 的基本用法!如果有任何问题,请随时提问。


本篇文章有用到GPT代码更正,国内可稳定使用,感兴趣的大佬可以试试。

传送门:363Ai工具箱

感谢阅读!!!

标签:Pygame,游戏,方块,pygame,velocity,block,size
From: https://blog.csdn.net/m0_65134936/article/details/141356336

相关文章

  • Leetcode JAVA刷刷站(55)跳跃游戏
    一、题目概述二、思路方向    在Java中,为了解决这个问题,你可以采用贪心算法的思想。贪心算法在这里的应用主要体现在,每一步都尽可能跳得远,以此来判断是否能够到达数组的最后一个下标。    算法的思路是,遍历数组nums,用一个变量farthest来记录遍历过程中能够......
  • 华为云服务器搭建小游戏
    在当今数字化的时代,搭建自己的小游戏服务器成为了许多开发者和爱好者的热门选择。华为云服务器凭借其强大的性能、稳定的服务和丰富的功能,为我们提供了一个理想的平台。接下来,让我们一起探索如何在华为云服务器上搭建小游戏。一、准备工作注册华为云账号并完成实名认证。开......
  • 计算机毕业设计Python深度学习游戏推荐系统 Django PySpark游戏可视化 游戏数据分析
    基于Spark的TapTap游戏数据分析系统技术栈:  -python  -django  -scrapy  -vue3  -spark  -element-plus  -echarts   功能板块:0.爬虫模块:  通过scrapy抓取taptap游戏网站数据,从分类页开始抓取全站游戏的数据1.首页......
  • 自己做的游戏(5.1)
    #defineKEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)#include<bits/stdc++.h>#include<windows.h>#include<algorithm>#include<iostream>#include<cstring>#include<time.h>#include<string>......
  • 《黑神话:悟空》Wegame版提示缺少DirectX工具怎么解决?黑神话悟空游戏启动时弹窗“缺少D
    在《黑神话:悟空》的Wegame版本中,一些玩家会遇到提示缺少DirectX工具的情况。别担心,修复方法并不复杂。首先检查系统是否已安装最新版本的DirectX,若没有,可从官方渠道下载并安装,一般能有效解决此问题。本篇将为大家带来《黑神话:悟空》Wegame版提示缺少DirectX工具修复方法的内容,......
  • 《鬼泣5》游戏崩溃提示“缺少d3dx9_43.dll”文件该怎么修复?鬼泣5游戏闪退弹窗“找不到
    在体验鬼泣5游戏的过程中,部分玩家会遭遇令人困扰的闪退情况,同时还会弹出“找不到d3dx9_43.dll”的提示。这一问题极大地影响了游戏体验,使玩家无法正常沉浸在游戏世界中,需要寻找有效的解决方法来应对。本篇将为大家带来提示“缺少d3dx9_43.dll”文件的修复方法的内容,感兴趣的小......
  • 经典记忆卡片游戏html代码
    记忆卡片游戏是一款简单而富有挑战性的经典游戏,旨在锻炼玩家的记忆力和观察力。游戏通常由一组图案相同的卡片组成,玩家需要通过翻转卡片找到匹配的对。每当找到一对匹配的卡片时,玩家将获得一定的分数或奖励,游戏结束时,分数最高者获胜。无论是与朋友竞技,还是单独训练,这款游戏都适合......
  • 《怪物猎人世界》游戏修改器:风灵月影六十七项功能全攻略
    《怪物猎人世界》(MonsterHunter:World)的风灵月影修改器,是一种专门为这款游戏设计的辅助工具,用于在游戏中提供多种自定义选项,以增强游戏体验或降低游戏难度。这类修改器通常由第三方开发者制作,并非官方发布,因此使用时需要注意可能带来的风险。《怪物猎人世界》六十七项风灵......
  • 游戏开发团队并非蚂蚁协作(1):PM与单子
    理想中的PM与单子在大型团队做大型游戏,因为有许多事情要做,而事情之间又存在着各自的优先级和相互依赖关系,所以这就需要一个群体去作为团队的“大脑”,来协调各种事情的处理。这个群体就是PM(ProjectManager,项目经理)。理想情况下,PM对项目中所有要做的事情有一个全局的视角......
  • 【C语言篇】数组和函数的实践:扫雷游戏(附源码)
    文章目录前言扫雷游戏的分析和设计扫雷游戏的功能说明游戏的分析和设计文件结构设计扫雷游戏的代码实现初始化棋盘打印棋盘布置雷排查雷扫雷游戏的拓展前言源码在最后扫雷游戏的分析和设计经典扫雷游戏扫雷游戏的功能说明使⽤控制台实现经典的扫雷游戏游戏可......