Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该如何为AndEngine实现ITouchArea.convertSceneToLocalCoordinates()?_Java_Android_Andengine_Coordinate Transformation - Fatal编程技术网

Java 我应该如何为AndEngine实现ITouchArea.convertSceneToLocalCoordinates()?

Java 我应该如何为AndEngine实现ITouchArea.convertSceneToLocalCoordinates()?,java,android,andengine,coordinate-transformation,Java,Android,Andengine,Coordinate Transformation,我正在使用AndEngine,我正在创建一个类来管理一堆精灵。 当用户触摸该类时,该类需要执行一些操作,因此我让它实现了ITouchArea接口 我定义的方法包含: @Override public boolean contains(float pX, float pY) { if( pX >= this.mXCenterPosition - X_DIMENSION/2 && pX <= this.mXCenterPosit

我正在使用AndEngine,我正在创建一个类来管理一堆精灵。 当用户触摸该类时,该类需要执行一些操作,因此我让它实现了ITouchArea接口

我定义的方法包含:

 @Override
 public boolean contains(float pX, float pY) {
    if(     pX >= this.mXCenterPosition - X_DIMENSION/2 &&
            pX <= this.mXCenterPosition + X_DIMENSION/2 && 
            pY >= this.mYCenterPosition - Y_DIMENSION/2 &&
            pY <= this.mYCenterPosition + Y_DIMENSION/2)
        return true;
    return false;
 }
我仍然怀念的是:

public float[] convertSceneToLocalCoordinates(float pX, float pY)
如果不定义它或返回null,程序就会崩溃。我试图看看它是如何在其他类中实现的,但我并不真正理解它的功能,我也不知道它的功能是什么,所以我不知道如何实现它。类的区域是一个简单的矩形


这个方法应该做什么?如何实现它?

该方法应将场景空间中的坐标转换为局部空间(实体的
)。如果
实体上只有平移
,则只需分别从给定的x和y坐标中减去
mX
mY

[在图中,实体的(mX,mY)为(300100)]


旋转和缩放将使用相同的概念。只是x轴和y轴将被旋转/缩放,因此
精灵
也将被旋转/缩放。您可能希望使用转换对象来实现这一点(与
Entity
的实现方式相同)。请参见
Entity.convertLocalToSceneCoordinates(最终浮点pX、最终浮点pY、最终浮点[]预使用)

非常感谢。精灵不会缩放或旋转,所以你真的给了我问题的解决方案!谢谢请注意:您的
contains
方法可以在没有任何
的情况下实现,如果
返回pX>=this.mXCenterPosition-X\u DIMENSION/2&&pX=this.mYCenterPosition-Y\u DIMENSION/2&&pY
public float[] convertSceneToLocalCoordinates(float pX, float pY)