2012-03-01 310 views
1

我目前正在研究2D游戏项目(Java),但到目前为止,任何游戏逻辑或AI都被粗暴地实现。例如,假设我需要在屏幕顶部随机定位一组精灵,我将使用Random类来完成这个任务。我只是简单地使用Random.nextInt(产生的x轴大小);虽然这确实起作用,但我很想知道我应该如何处理这类事情。作为第二种场景(这就是为什么我把AI放在标题中,尽管它不是真的是 AI),假设我想让我的角色随机闪烁,像一个生活般的时尚。我在这里要做的是使用Random类来计算闪烁的百分比(可能是20%)并每秒调用一次。基本游戏逻辑/ ai设计

任何建议,我应该如何真正去这个将不胜感激。

+1

听起来不错。有什么问题? – 2012-03-01 12:20:35

回答

2

Google针对Craig Reynolds撰写的题为“Steering Behaviors”的文章。它解决了这个问题,你会发现很棒的想法,开始具体地提供一些好的想法,让精灵群体呈现'智能'的运动。在他的不同行为中,如植绒等,关键在于让任何给定的精灵的属性依赖于某些其他精灵的属性。甚至可以说,就像 - 只有当两个邻居刚刚眨眼时,任何给定的精灵才会闪烁。这些线上的东西或其他。

希望这会有所帮助!

+1

Reynolds论文是用C++编写的,但是Java的实现都在网络上。 – 2012-03-01 15:01:33

+0

这很好(对于这样一个迟到的回复感到抱歉),我将在接下来的日子里看这篇文章。 – AaronDS 2012-03-05 21:52:57

+0

没问题 - 这里有另一对酷的资源。 Keith Peters在“高级ActionScript 3动画”中涵盖了Steering Behaviors,并且还有另外一本介绍性书籍“Making Things Move:Actionscript 3动画”。这些例子都在actionscript 3中,但写作很清晰,你可以很容易地翻译。塞满了对游戏开发非常重要的想法。 – 2012-03-09 20:49:18

1

您是否使用OOP(面向对象方法)?如果没有,你一定要考虑一下。 Java非常简单,可以加快开发时间并缩短代码。我会做一个精灵类,并给他们一个函数,说actionSpawn,或actionMove(我喜欢用word动作开始我的“动作”功能,因此他们很容易识别)。在这个函数中,你可以封装Random.nextInt函数来设置精灵的x和/或y位置。

您可以使用相同的方法使它们闪烁。

+0

是的,这实际上是我已经在做的。我不会与其他程序员合作太多(如果有的话),所以当我想出一些东西时,我经常会假设其他人都以不同的方式做事。谢谢! – AaronDS 2012-03-01 13:18:14