0

だから私は、カーソルで狙いを定め、カーソルをクリックした場所でキャラクターが撃つ2D Androidゲームを作成しています。矢印が作成されると、このメソッドが呼び出されます

private final float GRAVITY = 100, SPEED = 50f;

public Arrow(float dx, float dy, float x1, float y1, float x2, float y2,)
{
    destination = new Vector2(dx, dy);//mouse clicked here

    //x1 and y1 are the starting coordinates
    bounds = new Polyline(new float[]{x1, y1, x2, y2});

    double r = Math.atan2(dy-y1, dx-x1);//calculate angle
    velocity = new Vector2();
    velocity.x =  (float)(Math.cos(r) * SPEED);
    velocity.y = (float)(Math.sin(r) * SPEED) + ACCOUNT FOR GRAVITY;

    acceleration= new Vector2(0, GRAVITY);
}

これが更新方法です。かなり簡単です

public void update(float delta)
{
    velocity.add(acceleration.cpy().scl(delta));
    position.add(velocity.cpy().scl(delta));
}

重力をどのように説明しますか? 重力が 0 に設定されている場合、矢印はマウスがクリックした座標まで一直線に移動しますが、重力では常に不足します。重力を説明する方法がわかりません。私はデルタが私を台無しにしているかもしれないと思う.

4

1 に答える 1