我正在用Java开发2D游戏,我想要一些基本的游戏脚本(产生敌人,产生物品,改变敌人属性)。
我不知道的是如何划分游戏世界,以便我可以轻松使用它。
我需要不同类型的敌人(有健康和基本AI),项目类别(可以由玩家挑选),不同区块的瓷砖地图。
如何组织我的游戏世界架构?我应该使用哪些基础课程来轻松扩展和维护游戏世界?
答案 0 :(得分:3)
世界正在向前发展。所有活动元素(玩家,掉落物品,敌人,npc)都是如此,但所有被动元素都不是(石块,树,房子)因此我使用2个接口ActiveElement和PassiveElement。活动元素可以有一个stepintime()函数,每当游戏世界自己进入时,它就被游戏世界调用。两个元素都可以有一个render()函数,只要在画布上绘制游戏世界就会绘制元素。
然后所有的敌人都应该调用他们的ai来确定他们的下一个步骤以及检查与任何其他物体的碰撞以及任何意义(树木子弹玩家等)基本上对于其他所有元素都是如此。这对我来说是游戏世界中最基本的架构。
然后就是性能问题,把某些东西放在自己的线程中并让它们运行可能会更好(敌人ai在每个周期检查他的头像的位置和状态,并输出每一步读取的内容)在时间)但我没有足够的经验来详细说明。然后你应该去gamedev网站(例如karim79说)。
实现的元素可以拥有自己的属性,并且易于扩展(健康,统计) 并编写一个解释器,读取与游戏世界进行通信的简单脚本,添加敌人等。
侨
答案 1 :(得分:0)
我的布局通常类似于this。
GameObject
具有Draw()
和Move()
等功能。然后Enemy
设置了更多功能和变量,以便在Goblin
和Unicorn
中实施人工智能。 Player
包含在Move()
中移动播放器的所有内容。
这只是对我会做什么的一般概念。每种游戏都有所不同,具体取决于它的游戏类型以及游戏方式。