首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类中的游戏世界结构

类中的游戏世界结构
EN

Stack Overflow用户
提问于 2011-04-27 23:52:42
回答 2查看 1.5K关注 0票数 4

我正在开发一个Java的2D游戏,我想要一些基本的游戏脚本(产卵敌人,产卵项目,改变敌人的属性)。

我不知道的是如何划分游戏世界,以便我可以轻松地使用它。

我需要不同类型的敌人(具有健康和基本的AI),物品类别(可以由玩家挑选),带有不同块的瓦片地图。

我如何组织我的游戏世界架构?我应该使用哪些基础类来轻松地扩展和维护游戏世界?

EN

回答 2

Stack Overflow用户

发布于 2011-04-28 01:52:11

对我来说,游戏世界的基础就是找到共同点。

世界随着时间的推移而前进。所有的主动元素(玩家,掉落的物品,敌人,npc)都是如此,但是所有的被动元素都不是(石块,树,房子),因此我会使用两个接口ActiveElement和PassiveElement。active元素可以有一个stepintime()函数,游戏世界每次在时间步长时都会调用该函数。这两个元素都可以有一个render()函数,每当在画布上绘制游戏世界时,该函数都会绘制元素。

然后所有的敌人都应该调用他们的人工智能来决定他们的下一步,以及检查与任何其他物体的碰撞,无论这意味着什么(树木,子弹,玩家等等),基本上所有其他元素都是一样的。

对我来说,这是游戏世界中最基本的架构。

然后是性能问题,将某些东西放在它们自己的线程中并让它们运行会更好(敌人ai在每个周期检查他的头像的位置和状态,并进行输入,每一步都会读取),但在这方面我没有足够的经验来详细说明。然后你应该去一个游戏开发网站(如karim79所说的)。

实现的元素可以有自己的属性,并且很容易扩展(健康,统计),并编写一个解释器来读取与游戏世界通信的simpel脚本,添加敌人等。

再见

票数 3
EN

Stack Overflow用户

发布于 2011-04-28 02:06:49

我通常有一个类似于this的布局。

GameObject具有Draw()Move()等功能。然后,EnemyGoblinUnicorn中设置了一些更多的函数和变量来实现人工智能。Player包含了在Move()中移动播放器的所有东西。

这只是我会做的一个大概的想法。每个游戏都是不同的,这取决于它是什么类型的游戏和你玩它的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5806937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档