在 AndEngine 游戏中,我想抛出一个球形物理体。用户设置它的角度和力量并 throw 它。它的场景与我们在愤怒的小鸟中看到的一样。我已经计算了力和角度,但我很困惑如何同时将两者应用在球上,这意味着应该以计算出的角度但用特定的力将球抛出。谁能指导我走向正确的方向?
这是我的代码 fragment :
@Override
public boolean onAreaTouched(TouchEvent event,ITouchArea pTouchArea, float x, float y) {
// TODO Auto-generated method stub
if(event.isActionDown()) {
......
}
else if(event.isActionMove()) {
......
}
else if(event.isActionCancel() || event.isActionOutside() || event.isActionUp()) {
.....
launchHero(hero, string1.getX1()/PIXEL_TO_METER_RATIO_DEFAULT, string1.getY1()/PIXEL_TO_METER_RATIO_DEFAULT, x/PIXEL_TO_METER_RATIO_DEFAULT, y/PIXEL_TO_METER_RATIO_DEFAULT);
}
public void launchHero(Hero hero, float originX, float originY, float fingerX, float fingerY) {
Vector2 shoot = new Vector2((originX - fingerX), -(originY - fingerY));
shoot = shoot.nor().mul(10);
hero.getBody().setLinearVelocity(shoot);
}
}
return false;
}
我在 (originY - fingerY) 中添加了负值,因为如果我不这样做,球会先下降,然后在与底座碰撞后上升。
最佳答案
很简单,使用Body.setLinearVelocity(Vector2 pVector)
。方向和力都由向量的参数决定。这是示例代码:
Vector2 shoot = new Vector2((originX - fingerX), (originY - fingerY));
body.setLinearVelocity(shoot);
这将按照手指和原点的方向射击 body ,或者,在愤怒的小鸟的情况下,手指和吊索。
如果你想让力恒定并乘以某个数字,你可以在射击前这样做:
shoot = shoot.nor().mul(multiplier);
关于android - andengine 以特定的力和特定的角度抛球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579630/