android - 如何让 body 移动到我触摸的位置?

标签 android box2d andengine

您好,我正在尝试制作空气曲棍球类型的游戏,但我在实现桨运动组件时遇到问题。如何使用 setLinearVelocity 将 body (桨)移动到与 andengine 的 box2d 扩展触摸的位置?当我尝试这样做时,球会沿着看似随机的路径移动。

这是我尝试过的。

@Override
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent p) {

            if(p.isActionDown()){
                moveAir(p.getY(),p.getX());
            }else if(p.isActionMove()){
                moveAir(p.getY(),p.getX());
            }else if(p.isActionUp()){
                myPad.setLinearVelocity(0, 0);
            }


        return false;
    }

    private void moveAir(float y, float x) {
        x=x/32;
        y=y/32;



        if(myPad.getLocalCenter().x>x){
            myPad.setLinearVelocity(myPad.getLinearVelocity().x-10, myPad.getLinearVelocity().y);
        }else if(myPad.getLocalCenter().x<x){
            myPad.setLinearVelocity( myPad.getLinearVelocity().x+10,  myPad.getLinearVelocity().y);
        }else{
            myPad.setLinearVelocity(0, myPad.getLinearVelocity().y);
        }


        if(myPad.getLocalCenter().y>y){
            myPad.setLinearVelocity(myPad.getLinearVelocity().x,myPad.getLinearVelocity().y-10);
        }else if(myPad.getLocalCenter().y<y){
            myPad.setLinearVelocity( myPad.getLinearVelocity().x,myPad.getLinearVelocity().y+10  );
        }else{
            myPad.setLinearVelocity(myPad.getLinearVelocity().x, 0);
        }
    }

最佳答案

Box2D 有一种特殊类型的关节专门用于这种类型的交互。 您想在触摸的对象上使用“鼠标关节”。

andengine 论坛上已经有一个很好的 mousejoint 教程: http://www.andengine.org/forums/tutorials/tut-box2d-mousejoint-drag-and-drop-t1156.html

关于android - 如何让 body 移动到我触摸的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15194733/

相关文章:

android - 创建一个低优先级的 Android 服务

Android,当我在设备上安装我的应用程序时图标重复

java - LibGdx Box2d Platformer Jump 实现

java - AndEngine - 滚动 map 时的 Artifact (TextureOptions 相关)

java - 在某些卡片 android 中,recyclerview 中的删除按钮位置不正确

Android 将当前的 Fragment 类转换为 Activity 类

java - Libgdx Box2D 灯,在 Android 设备上看起来不同,光的轮廓很奇怪

c++ - 我如何使用 std::shared_ptr 和 box2d?

android - AndEngine GLES2 可以在 Android 2.1 update 1 上运行吗?

java - AndEngine Sprite 部分的图像