【发布时间】:2015-07-23 17:35:49
【问题描述】:
我的第一个游戏引擎有问题,请帮助我:(
第一部分我将解释问题,第二部分我将解释我的问题。
第一部分:
我有一个对象类的数组(名为“World”)
public Object World[] = new Object[500];对象有许多属性(名称、x、y、动画、长度、宽度......)
例如,我想提出collession的条件
if( Function_to_detect_collessions("object1_name","object2_name") ){ object2.Animation = "new value" ; }你会明白我的意思:
1- 许多对象可以得到相同的名称
2- 如果不止一个碰撞发生在两个以上的对象上 具有相同的名称(object1_name 和 object2_name),然后 object2.animation 的修改将在所有触摸 对象
example : if( collesion("ball","ground") ){ ball.movement = stop; } //Now imagine that there is two objects (two Balls) on the ground
第二部分:
我认为你明白我的意思,现在我将解释我的 问题。问题:
1-如果我可以检测到所有的 collessions 如何进行修改 像
这样一行的所有对象object2.prop = "something"2- 是否可以在 java 中对对象进行修改并使用 某些函数对多个对象进行相同的修改 自动。
----------------------------------------------- ------
我对不起我的英语不好,但我试图用我脑海中的所有词语来解释问题,我希望我这样做(任何答案都可以帮助我,即使是解决方案的一部分,所以请帮助)
【问题讨论】:
-
做这些事情通常是,但快速做起来真的很难。请记住,如果您可以在一行中编写代码,并不意味着它会运行得很快。很多时候使用更多的行来做某事会使其更快。
-
我知道我的引擎不会很快,但我不想让它变得复杂,因为这是我的第一个引擎,也许在下一个版本中我会尝试为这种类型找到解决方案问题:)还是谢谢你
-
您需要查看您正在尝试做的事情的逻辑,然后找到最佳/最快的解决方案来构建用例。如果您有 500 个对象,它们使用 500 个唯一变量来存储每个对象的速度,那么除了循环超过 500 个变量并更新每个变量之外别无选择。优化将是保留仅移动对象的列表,例如但是静止的物体也可以与移动的物体发生碰撞!如果您有对象集合(例如 Arraylist),您可以在一行中执行此操作:for (gameObject obj: allObects) obj.prop = "something";
-
是的,就是这样,你能解释一下你所说的吗[[ for (gameObject obj: allObects) obj.prop = "something"; ]] 或者给我一个链接以获得更多解释
标签: java arrays game-engine multiple-value