我正在开发一个Java的2D游戏,我想要一些基本的游戏脚本(产卵敌人,产卵项目,改变敌人的属性)。
我不知道的是如何划分游戏世界,以便我可以轻松地使用它。
我需要不同类型的敌人(具有健康和基本的AI),物品类别(可以由玩家挑选),带有不同块的瓦片地图。
我如何组织我的游戏世界架构?我应该使用哪些基础类来轻松地扩展和维护游戏世界?
发布于 2011-04-28 01:52:11
对我来说,游戏世界的基础就是找到共同点。
世界随着时间的推移而前进。所有的主动元素(玩家,掉落的物品,敌人,npc)都是如此,但是所有的被动元素都不是(石块,树,房子),因此我会使用两个接口ActiveElement和PassiveElement。active元素可以有一个stepintime()函数,游戏世界每次在时间步长时都会调用该函数。这两个元素都可以有一个render()函数,每当在画布上绘制游戏世界时,该函数都会绘制元素。
然后所有的敌人都应该调用他们的人工智能来决定他们的下一步,以及检查与任何其他物体的碰撞,无论这意味着什么(树木,子弹,玩家等等),基本上所有其他元素都是一样的。
对我来说,这是游戏世界中最基本的架构。
然后是性能问题,将某些东西放在它们自己的线程中并让它们运行会更好(敌人ai在每个周期检查他的头像的位置和状态,并进行输入,每一步都会读取),但在这方面我没有足够的经验来详细说明。然后你应该去一个游戏开发网站(如karim79所说的)。
实现的元素可以有自己的属性,并且很容易扩展(健康,统计),并编写一个解释器来读取与游戏世界通信的simpel脚本,添加敌人等。
再见
发布于 2011-04-28 02:06:49
我通常有一个类似于this的布局。
GameObject具有Draw()和Move()等功能。然后,Enemy在Goblin和Unicorn中设置了一些更多的函数和变量来实现人工智能。Player包含了在Move()中移动播放器的所有东西。
这只是我会做的一个大概的想法。每个游戏都是不同的,这取决于它是什么类型的游戏和你玩它的方式。
https://stackoverflow.com/questions/5806937
复制相似问题