PyGame 指南/二维游戏开发概念
如果你之前上过编程课,你可能已经了解程序从上→下逐行运行,直到它到达源代码文件的末尾。在它逐行执行代码的过程中,它会在等待用户输入时暂停,然后在接收到输入后继续运行。到达文件末尾后,程序会自动退出,除非你在其中添加了某种循环来保持它运行。
如果我们不希望程序自动退出,我们通常会在程序中某个位置放置一个程序循环,在这个循环中,每循环一次都会执行相同类型的任务……这可能包括显示菜单,让用户选择要执行的操作,执行该操作,然后返回菜单。类似地,如果游戏在启动后立即退出,那么它就不太可玩。游戏也有一个游戏循环,其中一些常见事件在游戏的每个循环中都会执行。
在游戏过程中,它首先执行的一组代码——在游戏循环开始之前——是设置或初始化代码。这是初始化变量、将资产加载到内存中以及为游戏做好准备的地方。一旦进入游戏循环,游戏将始终检查玩家输入(玩家是否按下了“右”箭头键?玩家是否点击了按钮?)、更新游戏对象(将所有敌人向玩家移动 5 个像素),以及绘制到屏幕上(绘制背景、世界、玩家和敌人)。我们将为每种类型的事件编写代码,但 PyGame 会帮助我们。
当然,我们也可以编写函数来处理特定任务,但是一旦函数执行完毕,程序流程就会从函数调用所在的下一行代码继续执行。
在计算机图形学中,(x, y) 坐标用于将图像和文本放置在屏幕上。你可能还记得代数中的坐标系。虽然这里应用了相同的想法,但坐标系的布局略有不同。
在计算机图形学中,坐标系的原点通常位于 (0, 0)。当你向右移动时,x 值会增加,当你向下移动时,y 坐标会增加。
变量是内存中的位置,我们可以存储数据。这些数据可以像数字或一串文本一样简单,也可以更复杂,例如一个硬币对象或一个非玩家角色对象。例如,我们每个游戏角色都将有一个(x, y) 坐标,这样游戏就知道在哪里将角色绘制到屏幕上。角色可能还会有一个分数变量,或一个名称变量,或许多其他东西。
最好使用变量,而不是在整个程序中硬编码值。如果数据存储在变量中,则更容易进行修复或更改——如果你的角色在关卡中的起始位置错误,你必须在游戏的所有关卡中更新这些坐标,怎么办?在命名变量时,还有一些规则需要遵守。你不能在变量名中包含空格,不能以数字开头(尽管它可以包含数字),也不能是关键字(如if)。
函数是可以运行的一组指令。函数有名称(如“AddToScore”),可以反复使用。这样,你就不必每次想要执行任务时都编写相同的代码:只需调用函数即可!
函数可以有输入和输出。输入通常称为参数,输出称为返回值。
例如,如果我们有一个AddToScore
函数,它的输入可能是“我们要将多少加到分数中?”,它的输出可能是“添加这个数量后,分数是多少?”
在代码形式中,它在 Python 中看起来像这样
def AddToScore( score, amount ): # score and amount are the inputs
score = score + amount # adding onto the score variable
return score # return the result of the math
函数并不总是需要有输入或输出,这取决于函数的任务是什么。
类是让我们(程序员)创建自己的变量数据类型的一种方法。默认情况下,我们可以使用像整数(整数)和字符串(带双引号的文本)这样的变量,但如果我们想要创建一个具有多个属性的游戏角色,例如名称、坐标、等级等,我们可以编写一个类来完成这项工作。
类可以包含成员函数和变量,这样我们就可以让我们的对象拥有功能和属性。
兔子对象 变量
函数
|
类的优点是,一旦你定义了一个类,你就可以创建任意数量的该类类型的变量。换句话说,一旦你实现了一个Player 类,你就可以重复使用相同的代码来创建你的player1, player2, player3和player4!