当前位置:首页>python>零基础Python游戏开发进阶(四)| pygame不得不说的 5大概念

零基础Python游戏开发进阶(四)| pygame不得不说的 5大概念

  • 2026-10-21 13:28:54
零基础Python游戏开发进阶(四)| pygame不得不说的 5大概念

10年青少年编程教育经验 | 资深Python专家

前大厂技术总监 | 现编程教育创业者

专注青少年编程教育技能提升

✦✦✦
👋大家好,我是浩浩学编程的方老师,欢迎来到【给孩子的趣味编程课】栏目,觉得不错可以转发给需要的人。

方老师前段时间启动了温故80后的童年记忆游戏《超级玛丽》的复刻计划,并放出了预热文章。

零基础Python游戏开发进阶(一)| 跟着敲就能跑起来,不懂就留言问,超级玛丽童年的回忆,python帮你实现

零基础Python游戏开发进阶(二)|80后童年记忆游戏《超级玛丽》的前期准备工作,给全套角色图片资源

零基础Python游戏开发进阶(三)|pygame的3大核心原理,你掌握几个

今天重点给大家介绍一下pygame的关键概念:比如坐标系、时钟等。

那么这一篇,重点是给大家讲一下pygame的不得不说的关键概念。

一:什么是坐标系

坐标系可以理解为游戏画布上的位置,每个画布出现在哪里、要移到哪里,其基本样子是这样的,以长(length)700和宽(width)480游戏界面为例。
游戏界面的坐标示意图
图中红圈的为游戏中的角色,其也遵守这个规则:
  • x 轴:从左往右数,数值越来越大 → 控制东西的左右位置。
  • y 轴:从上往下数,数值越来越大 → 控制东西的上下位置。

比如:

  • 坐标 (100, 200) 就是:从左上角原点(0,0)往右走 100 步,再从上往下走 200 步的位置。
  • 想让一个小球往右移?每次把 x 坐标加一个数值(比如5) 就行;想让它往下掉?每次把 y 坐标加 5。
二:什么是时钟(Clock)

时钟(Clock):控制游戏的 “快慢节奏”

游戏的动画是一帧一帧画出来的,时钟就是用来控制每秒画多少帧(FPS) 的工具。

按照视觉体验,只要帧数超过24/s,人眼才会觉得比较流畅。

  • 比如:
  • 设置 clock.tick(60),就是让游戏每秒画 60 帧 → 动画会很流畅,不会忽快忽慢。
  • 如果没有时钟,电脑配置越高,游戏跑得越快,角色会瞬移一样,根本没法玩。

三、什么是画布(surface)

主界面本身以及里面的东西都是不同的画布

在 Pygame 里看到的所有东西,文字、图片、颜色块,都画在画布上。

  • 游戏窗口本身就是一个大 Surface(主画布)。
  • 你加载的一张图片(角色、背景等),也是一个小 Surface(像贴纸),可以随便贴在主画布上的任何位置。
  • 比如:
  • 想在屏幕上显示一张猫咪图片,步骤就是:加载猫咪图片 → 得到猫咪 Surface → 把猫咪 Surface 贴到主窗口 Surface 上。

🎨画布的增强体:精灵

精灵(Sprite):游戏里的 “可动角色”

精灵就是游戏里能自己动、能和别人互动的东西—— 比如玩家控制的小人、敌人、子弹、金币,都叫精灵。

  • 不用精灵也能做游戏,比如直接用画布(surface),但用了之后,管理这些角色会特别方便。
  • 比如:
  • 你想让 10 个敌人一起往左走,不用写 10 遍代码,只要给所有敌人精灵统一发个 “往左移” 的指令就行。
  • 精灵还能轻松实现 “碰撞检测”:比如子弹碰到敌人,就能判定 “打中了”。

🎯 事件驱动:游戏互动信号

事件就是玩家对游戏做的操作指令,Pygame 会把这些操作打包成 “信号”,等着程序去处理。常见的事件:

  • 鼠标点击、移动
  • 键盘按键按下 / 松开
  • 窗口被关闭

比如:

检测到 “键盘右键被按下” 事件 → 就让玩家精灵的 x 坐标加 5 → 角色就往右走了。

新教程说明

这个教程目标是帮助大家掌握从界面、得分到关卡的一系列开发过程,可以用学到的能力,基于后续大家自己找到的游戏素材实现其余关卡。

所以,教程中会告诉大家pygame实现游戏效果的基本逻辑,素材包中角色和背景如何使用,横版游戏是如何移动的。

整个教程会包含完整代码段以及对应的素材包。

这种移动方式跟之前学的飞机大战不一样,不是基于背景交替变换实现的。

结语

再深层次的内容,等到具体细节的时候,我们再进一步论述。

当然能学多少,很多时候还是看同学们在这个上面投入多少,成本越高学习动力可能就越高。

而且在评论区互动多了,学的也就越多,毕竟学东西只有自己有兴趣才可能学得会。

#python游戏开发#python#python趣味编程课

如果你有任何疑问或建议,欢迎在下方留言交流!👇

作者简介:方老师,资深技术从业者,有接近30年的技术从业经验,致力于用简单易懂的方式讲解复杂的技术问题,希望能帮助大家学以致用。

请在微信客户端打开

敬请期待。。。。。。

下一篇我们开始正文,先给大家讲一段示例代码。

最新文章

随机文章