android - andengine 以特定的力和特定的角度抛球

标签 android andengine angle throw

在 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/

相关文章:

java - Android AndEngine : java. lang.IllegalArgumentException: 未找到 EGLConfig

Python:使用到点 A (x0, y0) 的距离和角度找到给定点 B 的 x,y 坐标

android - TiledSprite 没有按预期工作

python-3.x - OpenCV 中测量角度的引用点是什么?

基于角度的 C++ SDL 碰撞

android - 从 GridView 中删除项目

android - 位图太大,无法上传到纹理中

java - 同一 Activity 上的 ImageView 和 VideoView

javascript - JQUERY Mobile 表单在输入值时跳转

android - 对同一对象使用多个 Sprite 表 AndEnginge