Pygame 官方文档 - Tutorials( 二 )


是时候更新球的位置了 。第17到21行将变量用目前速度移动 。如果球移动到屏幕外 , 我们将朝那个方向反转速度 。不完全是牛顿物理学 , 但它是我们所需要的 。
在第23行 , 我们通过填充黑色RGB颜色来擦除屏幕 。如果您从未使用动画 , 这可能看起来很奇怪 。你可能会问“我们为什么要擦掉任何东西 , 为什么我们不仅把球移到屏幕上?”这不是计算机动画的工作方式 。动画只不过是一系列单个图像 , 按顺序显示时 , 可以很好地愚弄人眼看动作 。屏幕只是用户看到的单个图像 。如果我们没有花时间从屏幕上擦掉球 , 我们实际上会看到球的“踪迹” , 因为我们不断将球拉到新位置 。
在第24行 , 我们将球图像绘制到屏幕上 。图像的绘制由.blit()方法处理 。blit基本上意味着将像素颜色从一个图像复制到另一个图像 。我们将blit方法传递给要复制的源() , 以及将源放置到目标上的位置 。
我们需要做的最后一件事是实际更新可见显示 。使用双缓冲区管理显示() 。当我们完成绘制时 , 我们调用..flip()将完整显示更新为屏幕方法 。这使得我们在屏幕上绘制的所有内容都变得可见 。这种缓冲确保我们只能在屏幕上看到完全绘制的帧 。没有它 , 用户将在创建时看到屏幕的一半完成部分 。
这是对的简短介绍 。还有一些模块可以处理键盘 , 鼠标和摇杆()的输入处理 。可以混合音频和解码流媒体音乐 。使用 , 您可以绘制简单的形状 , 旋转和缩放图片 , 甚至可以实时处理图像的像素作为numpy数组 。还具有作为的跨平台显示层的能力 。大多数模块都是用C语言编写的 , 实际上很少用完成 。
网站提供了针对所有函数的完整参考文档以及适用于所有用户范围的教程 。源附带了许多例如和UFO射击的例子 。
和游戏
“适合游戏吗?”答案是 , “这取决于游戏 。”
实际上非常有能力运行游戏 。甚至可能会在30毫秒内让您感到惊讶 。尽管如此 , 一旦你的游戏开始变得更复杂 , 就不难达到上限 。任何实时运行的游戏都将充分利用计算机 。
在过去几年中 , 游戏开发出现了一个有趣的趋势 , 即向更高级别的语言发展 。通常游戏分为两个主要部分 。游戏引擎必须尽可能快 , 以及游戏逻辑 , 这使得引擎确实做了一些事情 。不久前 , 游戏的引擎是用汇编编写的 , 部分用C语言编写 。现在 , C已经转移到了游戏引擎 , 而游戏本身通常是用更高级别的脚本语言编写的 。像雷神之锤III竞技场和虚幻引擎这样的游戏将这些脚本作为可移植字节码运行 。

Pygame 官方文档 - Tutorials

文章插图
2001年初 , 开发商Rebel Act 完成了他们的游戏 , :Blade of。使用他们自己的自定义3D引擎 , 游戏的其余部分是用编写的 。这个是一个血腥的第三人称战斗游戏 。在探索地下城和城堡的同时 , 你可以控制中世纪的战士进入错综复杂的斩首组合攻击 。您可以为此游戏下载第三方附加组件 , 并发现它们只不过是源文件 。
Pygame 官方文档 - Tutorials

文章插图
最近 , 已被用于各种游戏 , 如自由力量 Force和巨大后院运动’。
和SDL是2D游戏的优秀C引擎 。游戏仍然会发现他们运行时的最大部分是在SDL内部处理图形 。SDL可以利用图形硬件加速 。启用此功能可以将游戏从每秒40帧运行到每秒200帧以上 。当你看到你的游戏以每秒200帧的速度运行时 , 你会发现和游戏可以协同工作 。