【发布时间】:2013-05-31 01:47:03
【问题描述】:
我现在正在研究我项目的 AI 部分。我正在从我的 AI 类中调用一个方法,该方法旨在计算我绘制的 Gladiator 对象实际需要结束的位置。我向该方法传递了一个包含我想要放置的所有对象的列表。 AI 类的先前方法已经确定了他们希望彼此的距离,我将其存储为gladiator[0..1..2..etc].movementGoal。
虽然该项目不是实时的,即我希望最终只是“逐步”通过它,但我确实希望同时发生运动。这意味着我遍历列表的标准方法将不起作用,因为我需要有关其他角斗士的移动决策的信息,以便在这些决策相互作用时找出任何一个角斗士的实际移动。
当我在课堂外并且只有列表形式时,如何访问另一个特定角斗士的变量?
编辑:
我想我可以迭代并测试一个变量gladiatorNumber 是否正确,然后它何时提取该信息?这将是相当迂回的,但这是我能想到的。
编辑2:
根据要求,一些代码。我在 Ai 类中的方法是这样的:
public void moveAI(List<Gladiator> gladiators) {
我的角斗士是这样定义的:
public class Gladiator {
Gladiator 类被创建为一个数组,然后添加到一个单独的主类中的列表中。我真的不想包含比这更多的代码,因为它有很多。基本上它归结为我如何从 AI 类中调用角斗士 [0],即使我在主类中创建了所述对象并且仅在 AI 类中以列表形式存在它们。假设 Gladiator 中的所有变量都是公开的。我得到的错误是找不到引用角斗士[0...1...2...等]的符号。
【问题讨论】:
-
您能发布一些代码供我们使用吗?如果您想访问非本机类的变量,则需要将它们声明为
public或private。在给定时刻停止将需要实现timer。 -
你有玩家等级吗?还是只是角斗士 vs 角斗士?
-
@tdorno 停止不应该需要计时器,因为我计划事先计算所有相对运动,然后一次将所有东西移动到最终的位置。我不是在寻找流畅,我在寻找几乎回合制。但同时移动。
-
@aryaq Gladiator vs Gladiator,没有输入,但空格键“逐步通过”
-
@tdorno 需要注意的是,我确实有一个计时器,但它是让 AI 处理数据并决定,然后重新绘制。