box2d 中的 vector2 变短了
Vector2 in box2d become shorter
我用 AndEngine GLES2-AnchorCenter 和 Box2d ext 为 android 开发了一款游戏。为了让玩家跳跃,我使用了 vector2,请参见下面的代码:
@Override
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.isActionDown()) {
awalx = pSceneTouchEvent.getX();
awaly = pSceneTouchEvent.getY();
return true;
}
if (pSceneTouchEvent.isActionMove()) {
return true;
}
if (pSceneTouchEvent.isActionUp() && loncat == false) {
akhirX = pSceneTouchEvent.getX();
akhirY = pSceneTouchEvent.getY();
jarakX = (awalx - akhirX) / 20;
jarakY = (awaly - akhirY) / 20;
Vector2 jump = new Vector2(jarakX, jarakY);
body.setLinearVelocity(jump);
// mSound2.play();
lct--;
loncat = true;
return true;
}
return true;
}
你可以看到我使用变量jarakX
和jaraxY
来测量跳跃距离。当我第一次玩游戏时vector2完美运行,但当我退出游戏再次玩时,vector2似乎让玩家跳得比第一次短。
第三局的Vector2甚至比第二局还要短,以此类推。是因为AndEngine或box2d的性能还是后台的activity影响了AndEngine和box2d?
谢天谢地,我的问题通过使用 fixedstepphysicsworld 解决了
我用 AndEngine GLES2-AnchorCenter 和 Box2d ext 为 android 开发了一款游戏。为了让玩家跳跃,我使用了 vector2,请参见下面的代码:
@Override
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.isActionDown()) {
awalx = pSceneTouchEvent.getX();
awaly = pSceneTouchEvent.getY();
return true;
}
if (pSceneTouchEvent.isActionMove()) {
return true;
}
if (pSceneTouchEvent.isActionUp() && loncat == false) {
akhirX = pSceneTouchEvent.getX();
akhirY = pSceneTouchEvent.getY();
jarakX = (awalx - akhirX) / 20;
jarakY = (awaly - akhirY) / 20;
Vector2 jump = new Vector2(jarakX, jarakY);
body.setLinearVelocity(jump);
// mSound2.play();
lct--;
loncat = true;
return true;
}
return true;
}
你可以看到我使用变量jarakX
和jaraxY
来测量跳跃距离。当我第一次玩游戏时vector2完美运行,但当我退出游戏再次玩时,vector2似乎让玩家跳得比第一次短。
第三局的Vector2甚至比第二局还要短,以此类推。是因为AndEngine或box2d的性能还是后台的activity影响了AndEngine和box2d?
谢天谢地,我的问题通过使用 fixedstepphysicsworld 解决了