AndEngine을 사용하고 있으며 스프라이트를 관리하는 클래스를 만들고 있습니다. 클래스는 사용자가 터치 할 때 몇 가지 작업을 수행해야하므로 ITouchArea 인터페이스를 구현했습니다. 그것을 정의, 또는 null 반환하지 않고AndEngine의 ITouchArea.convertSceneToLocalCoordinates()는 어떻게 구현해야합니까?
public float[] convertSceneToLocalCoordinates(float pX, float pY)
:
@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)
내가 아직도 그리워하는 것은 이것이다
나는 방법에 포함 된 정의 프로그램이 충돌합니다. 나는 그것이 다른 클래스에서 어떻게 구현되는지 살펴 보려고했지만, 실제로 어떤 일이 일어나는 지 이해하지 못했으며, 그 함수가 무엇인지 모르기 때문에 구현 방법을 모른다. 클래스의 영역은 단순한 사각형입니다.
이 방법은 어떻게해야합니까? 어떻게 구현합니까?
그냥 참고 사항 : - X_DIMENSION/2 && \t \t \t \t pX의 <= this.mXCenterPosition + X_DIMENSION 귀하의'contains' 방법은 어떤'if'없이 구현 될 수있다, 다만'\t \t pX의> = this.mXCenterPosition 반환/2 && \t \t \t \t PY> = this.mYCenterPosition - Y_DIMENSION/2 && \t \t \t \t PY <= this.mYCenterPosition + Y_DIMENSION/2] '(물론 사용자의 예처럼 바꿈과 함께). –