과 같은 수집 가능한 객체를 제거하고 im은 andangine과 tmx 및 body2d 확장자를 사용하여 게임을 개발합니다. 지도를 만드는 동안 특정 위치의 동전과 같은 오브젝트 (스프라이트)를 만듭니다. 나는 플레이어가 동전과 충돌하는지 확인하기 위해 contactlistener를 사용합니다.및 엔진은 Sprites
어떻게이 스프라이트를 삭제할 수 있습니까? 및 내 스프라이트를 어떻게 구성 할 수 있습니까? thanks =)
과 같은 수집 가능한 객체를 제거하고 im은 andangine과 tmx 및 body2d 확장자를 사용하여 게임을 개발합니다. 지도를 만드는 동안 특정 위치의 동전과 같은 오브젝트 (스프라이트)를 만듭니다. 나는 플레이어가 동전과 충돌하는지 확인하기 위해 contactlistener를 사용합니다.및 엔진은 Sprites
어떻게이 스프라이트를 삭제할 수 있습니까? 및 내 스프라이트를 어떻게 구성 할 수 있습니까? thanks =)
PhysicsConnector
을 작성하여 스프라이트와 본문을 연결한다고 가정합니다. 이 물리학 커넥터의 목록을 만들고, 당신이 몸 (그리고 그 스프라이트)를 제거해야합니다 결정할 때, 다음을 수행하십시오 스프라이트 조직에 대한
Body bodyToRemove = //Get it from your contact listener
for(PhysicsConnector connector : mPhysicsConnectors) //mPhysicsConnectors is the list of your coins physics connectors.
if(connector.getBody() == bodyToRemove)
removeSpriteAndBody(connector); //This method should also delete the physics connector itself from the connectors list.
을 : 동전을 다시 사용 가능한 스프라이트, 당신은 다시 안 그들마다. 이 주제에 관해서는 here's이라는 객체 풀을 사용할 수 있습니다.
본문의 사용자 데이터를 설정하는 것이 좋습니다. 그리고 충돌 처리기에서 작업 할 수 있습니다. 작은 예 :
body.setUserData(...);
..
public void postSolve(Contact contact, ContactImpulse impulse) {
... bodyAType = (...) bodyA.getUserData();
... bodyBType = (...) bodyB.getUserData();
if (bodyAType != null && bodyBType != null) {
if (bodyAType.getUserData.equals(...)) {
//.......do what you need
}
}
}
그래, 내가 이미 사용하고있는 것. – blub
확인. removeSpriteAndBody 같은 메서드를 수행하지만이 메서드가 호출 될 때 내 응용 프로그램이 충돌합니다. -25 23 : 50 : 51.869 : E/AndroidRuntime (15700) : 치명적인 예외 : UpdateThread 11-25 23 : 50 : 51.869 : E/AndroidRuntime (15700) : java.util.ConcurrentModificationException 11-25 23:50 : 51.869 : E/AndroidRuntime (15700) : \t at java.util.ArrayList $ ArrayListIterator.next (ArrayList.java:576) – blub
이것을 시도하십시오. Iterator iterator = mPhysicsConnectors.iterator(); \t \t while (iterator.hasNext()) { \t \t \t connector = iterator.next(); \t \t \t if (connector.getBody() == needToRemove) { iterator.remove(); removeSpriteAndBody (connector); } } –
Aleksandrs
내 게임에서 비슷한 것을 구현할 때도이 문제가 발생했습니다. Racoon이 말한 것을 사용하면 효과가 있습니다. – Jong