Java 我应该如何为AndEngine实现ITouchArea.convertSceneToLocalCoordinates()?
我正在使用AndEngine,我正在创建一个类来管理一堆精灵。 当用户触摸该类时,该类需要执行一些操作,因此我让它实现了ITouchArea接口 我定义的方法包含: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
@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)