use*_*993 0 c c++ oop procedural-programming
这可能是一个关于如何使用OOP语言和过程语言来设计游戏的问题.
我见过的大多数使用OOP语言的教程和页面(例如C++或Java)都使用对象来创建游戏中使用的所有内容,例如用户可控角色的类,屏幕上的子弹类,a烟雾效果等级,飞行箭头等等.
我的第一个问题是:将游戏中的所有内容实现为一个"正常"或"推荐"的想法是否采用?如果我使用的是OOP语言,这就是我应该如何编写游戏的吗?
我的第二个问题是:如果有人要用C等程序语言编写游戏,那么你将如何创建相同的系统呢?我无法为游戏中的每个项目创建一个对象.据推测,我会创建一个struct并且有一个说的数组structs?此外,通过OOP设计,我将使每个对象能够自我控制(例如,碰撞检测).我如何用程序语言实现这一目标?有一些代码可以遍历每个代码struct并从那里操作每个结构吗?
关于你的第一个问题:这就是事物以自然方式出现的方式.当你考虑你的游戏时,你会想到玩家,敌人,场景,房间,武器,目标等等.所有这些东西都被自然地建模为对象,因为它们将属性(即成员变量)和行为分组(即方法).这就是它通常的方式,如果你选择实现这些东西的语言提供了一种表达方式,你为什么不使用它呢?
关于你的第二个问题:如果你选择的语言不允许接近自然的实现,你会想尽可能地模拟它.要拿起你的例子:你将使用结构(属性)对对象进行建模并相应地实现行为 - 使用对这些结构进行操作的函数(例如enemy_hit(player))或结构中包含的函数指针(即player-> hit(播放器,...)).