您的位置:

主页 > 游戏特色 >

BJBK 4审查修订版10的代(第一个里程碑)

时间:2019-09-04 12:36

[来自Pompi Pompi开发者和游戏玩家博客]

修订版的源代?10可以在这里找到。请注意下载?页面上的免责声明\协议。

文件概述
代有几个.cs(C#源代),每个代都处理游戏的另一个方面。
Game1.cs是我在选择Windows Game项目时由visual C#创建的文件。这是“游戏”文件,其中将调用游戏逻辑的所有更新和图形的所有图纸。
Program.cs包含程序的主要部分,它将创建并运行Game1.cs中定义的游戏类。?
Object.cs定义对象类。物体可以是任何东西,但在这种情况下,这些物体是地面,香蕉,玩家以及未来的桶。我想我们可以说这些是物理对象,因为基础对象类包含所有物理计算。在这个游戏中,每个物理对象都包含物理,逻辑更新和绘图调用,所有这些都在一个对象中。在Labyrinthicathings并不是那么简单,但也许我应该尝试在更大的项目中这样做。我不确定这样做很容易。您可以尝试研究Object.cs中对象的hirarechy,以了解在这种情况下如何使用继承。
Camera.cs包含一个摄像头类。 2D游戏中的相机也是2D,相机指向屏幕中心在虚拟2D世界中的位置。相机类还具有判断对象是否可见的能。在这个游戏中,相机类也以恒定速度向右移动。
Section.cs包含一个类,其能是检查两个矩形物理对象是否相互交叉。
Input.cs包含处理来自播放器的输入的类。我定义了一个名为PlayerControl的接口。该界面描述了玩家发送游戏的可能命令。但是,它没有任何实现,也没有将使用哪个输入设备发送这些命令。 KeyboardInput实现PlayerControl并允许播放器使用键盘发送这些命令。在未来,我可以添加其他输入设备,例如XBOX360游戏手柄,通过简单地实现PlayerControl接口来发送这些命令。
最后一个文件是Level.cs。此文件包含用于管理对象组并帮助创建对象的类。

模式等级设计
模式级别设计是关于关于彼此相关的一小组类的设计决策。它比游戏的高级概念级概述低。但它高于单个能或单个类。这些设计决策几乎对任何项目都有用,而且不是项目特定的。它们可以用于项目特定的类,但这个概念也可以用于其他项目。
我已经讨论过ControlPanel接口,但它是一个如何将游戏控制的概念与实现ControlPanel接口的特定游戏设备分开的示例。
来自Objects.cs的类?PlayerObject和PlayerKicker是彼此相关的。这个游戏中的玩家可以跑,跳或踢。当处于踢状态时,玩家实际上改变它的碰撞矩形尺寸并改变它的颜色。这两个类继承自具有更新逻辑和绘制虚函数的基类。对于播放器运行和跳转的正常状态,我们可以使用PlayerObject。对于踢球状态我们可以使用PlayerKicker。但我们需要一个包含两种状态的对象!我做了什么?解决这个问题是什么?叫做委托。 Delegate是一个具有某些虚方法的类,正在使用具有相同虚方法的另一个类。就好像这个类外包了它的方法的一部分。这不是一个准确的描述,但由于缺乏更好的描述,我将使用它。
我已经让PlayerObject创建并保持对PlayerKicker对象的引用。在PlayerObject的更新方法中,我将PlayerKicker位置设置为与更新的PlayerKicker位置相同。在绘制方法中,如果玩家处于正常状态,我会正常绘制它。如果玩家处于踢球状态,我会调用PlayerKicker的draw方法。

斯巴达编程
Spartan编程是应该尝试同时最小化的几个指标。最小化这些指标可以帮助您创建更易读的代,并更好地使用可用的术语来命名类,方法和函数。据推测,它涉及能级别,但从某种意义上说,它会影响整个程序的结构。我没有投入太多精力来“spartaniz

[来自Pompi Pompi开发者和游戏玩家博客]

修订版的源代?10可以在这里找到。请注意下载?页面上的免责声明\协议。

文件概述
代有几个.cs(C#源代),每个代都处理游戏的另一个方面。
Game1.cs是我在选择Windows Game项目时由visual C#创建的文件。这是“游戏”文件,其中将调用游戏逻辑的所有更新和图形的所有图纸。
Program.cs包含程序的主要部分,它将创建并运行Game1.cs中定义的游戏类。?
Object.cs定义对象类。物体可以是任何东西,但在这种情况下,这些物体是地面,香蕉,玩家以及未来的桶。我想我们可以说这些是物理对象,因为基础对象类包含所有物理计算。在这个游戏中,每个物理对象都包含物理,逻辑更新和绘图调用,所有这些都在一个对象中。在Labyrinthicathings并不是那么简单,但也许我应该尝试在更大的项目中这样做。我不确定这样做很容易。您可以尝试研究Object.cs中对象的hirarechy,以了解在这种情况下如何使用继承。
Camera.cs包含一个摄像头类。 2D游戏中的相机也是2D,相机指向屏幕中心在虚拟2D世界中的位置。相机类还具有判断对象是否可见的能。在这个游戏中,相机类也以恒定速度向右移动。
Section.cs包含一个类,其能是检查两个矩形物理对象是否相互交叉。
Input.cs包含处理来自播放器的输入的类。我定义了一个名为PlayerControl的接口。该界面描述了玩家发送游戏的可能命令。但是,它没有任何实现,也没有将使用哪个输入设备发送这些命令。 KeyboardInput实现PlayerControl并允许播放器使用键盘发送这些命令。在未来,我可以添加其他输入设备,例如XBOX360游戏手柄,通过简单地实现PlayerControl接口来发送这些命令。
最后一个文件是Level.cs。此文件包含用于管理对象组并帮助创建对象的类。

模式等级设计
模式级别设计是关于关于彼此相关的一小组类的设计决策。它比游戏的高级概念级概述低。但它高于单个能或单个类。这些设计决策几乎对任何项目都有用,而且不是项目特定的。它们可以用于项目特定的类,但这个概念也可以用于其他项目。
我已经讨论过ControlPanel接口,但它是一个如何将游戏控制的概念与实现ControlPanel接口的特定游戏设备分开的示例。
来自Objects.cs的类?PlayerObject和PlayerKicker是彼此相关的。这个游戏中的玩家可以跑,跳或踢。当处于踢状态时,玩家实际上改变它的碰撞矩形尺寸并改变它的颜色。这两个类继承自具有更新逻辑和绘制虚函数的基类。对于播放器运行和跳转的正常状态,我们可以使用PlayerObject。对于踢球状态我们可以使用PlayerKicker。但我们需要一个包含两种状态的对象!我做了什么?解决这个问题是什么?叫做委托。 Delegate是一个具有某些虚方法的类,正在使用具有相同虚方法的另一个类。就好像这个类外包了它的方法的一部分。这不是一个准确的描述,但由于缺乏更好的描述,我将使用它。
我已经让PlayerObject创建并保持对PlayerKicker对象的引用。在PlayerObject的更新方法中,我将PlayerKicker位置设置为与更新的PlayerKicker位置相同。在绘制方法中,如果玩家处于正常状态,我会正常绘制它。如果玩家处于踢球状态,我会调用PlayerKicker的draw方法。

斯巴达编程
Spartan编程是应该尝试同时最小化的几个指标。最小化这些指标可以帮助您创建更易读的代,并更好地使用可用的术语来命名类,方法和函数。据推测,它涉及能级别,但从某种意义上说,它会影响整个程序的结构。我没有投入太多精力来“spartaniz

上一篇:符文翡翠网络详情
下一篇:20周年快乐Megaman X4