- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 AndEngine 并且我正在创建一个类来管理一堆 Sprite 。该类需要在用户触摸时执行一些操作,因此我让它实现了 ITouchArea 接口(interface)。
我定义的方法包含:
@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;
}
和这个方法:
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY)
我仍然想念的是:
public float[] convertSceneToLocalCoordinates(float pX, float pY)
如果不定义它,或者返回 null,程序就会崩溃。我试图看看它在其他类中是如何实现的,但我并没有真正理解它是做什么的,也不知道它的作用是什么,所以我不知道如何实现它。类的区域是一个简单的矩形。
这个方法应该做什么?我将如何实现它?
最佳答案
该方法应将场景空间中的坐标转换为局部空间(实体
)。如果您的 Entity
上只有翻译,那么您只需分别从给定的 x 和 y 坐标中减去 mX
和 mY
。
[图中实体的(mX, mY)为(300, 100)]
对于旋转和缩放,它将使用相同的概念。只是 x 和 y 轴会旋转/缩放,因此 Sprite
也会旋转/缩放。您可能希望使用 Transformation 对象来实现它(与 Entity
的方式相同)。参见 Entity.convertLocalToSceneCoordinates(final float pX, final float pY, final float[] pReuse)
。
关于java - 我应该如何为 AndEngine 实现 ITouchArea.convertSceneToLocalCoordinates()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7463051/
我正在使用 AndEngine 并且我正在创建一个类来管理一堆 Sprite 。该类需要在用户触摸时执行一些操作,因此我让它实现了 ITouchArea 接口(interface)。 我定义的方法包含
我是一名优秀的程序员,十分优秀!