【发布时间】:2015-06-11 10:12:15
【问题描述】:
基本上我有这个代码:
for(int i = 0; i < tnt.size; i++){
TNT t = tnt.get(i);
if(cl.isLeft()){ t.getBody().setLinearVelocity(6,0); }
if(cl.isRight()){t.getBody().setLinearVelocity(-6,0); }
if(t.getBody().getPosition().x > 1888/PPM){t.getBody().setLinearVelocity(-6,0); }
if(t.getBody().getPosition().x < 31/PPM){t.getBody().setLinearVelocity(6,0);}
}
如果我在这个数组中有 2 个对象,当对象 #1 发生某些事情时,它的行为方式会发生变化,但对象 #2 会发生与对象 #1 相同的变化。我希望他们独立行动,那我该怎么做呢?
这是发生的事情的 GIF:https://gfycat.com/HelplessEmotionalCornsnake 当物体(TNT)接触到墙壁时,它应该改变方向,但在这里它们都改变方向,只有一个应该改变方向。
【问题讨论】:
-
by not 使用 for 循环并且 not 将它应用于两个对象?
-
您正在更改 for 循环中的两个对象。您需要首先区分对象,即仅将这些更改应用于与墙壁碰撞的 TNT。在循环内部,更改将应用于 tnt 数组中的所有对象。
-
感谢您的回答! @RaviRanjan 如何区分循环中的对象? (对不起,我不太了解,我是编程新手)
-
我对图形不太感兴趣,但我想你可以跟踪对象的 x - y 轴。
标签: java arrays for-loop libgdx box2d