andengine gles2에서 몸체와 관련된 스프라이트를 어떻게 얻을 수 있습니까? 본문이 충돌하면 관련 본문을 가져올 수 있지만 해당 본문과 연결된 스프라이트를 어떻게 얻을 수 있습니까?Box2d - AndEngine
제발 도와주세요, 나는 eng와 box2d를 처음 보았습니다.
미리 감사드립니다. 당신이 몸은이 같은 몇 가지 추가 데이터를 설정할 수있는 몸을 만들 때
andengine gles2에서 몸체와 관련된 스프라이트를 어떻게 얻을 수 있습니까? 본문이 충돌하면 관련 본문을 가져올 수 있지만 해당 본문과 연결된 스프라이트를 어떻게 얻을 수 있습니까?Box2d - AndEngine
제발 도와주세요, 나는 eng와 box2d를 처음 보았습니다.
미리 감사드립니다. 당신이 몸은이 같은 몇 가지 추가 데이터를 설정할 수있는 몸을 만들 때
는 : 그것은 개체 요소를 필요로하기 때문에
myBody.setUserData("Monster"); //to set a String
myBody.setUserData(333); //to set a number
myBody.setUserData(new MyData()); //to set other Object
는 사실이 방법은 아무것도 받아들입니다. 그래서 당신은 다음과 같이/엔티티가 그 몸에 연관되는 스프라이트 처리하기 위해 자신의 클래스를 만들 수 있습니다
class BodyData{
public IEntity mEntity;
public String mName;
public BodyData(String pName, pEntity){
mEntity = pEntity;
mName = pName;
}
}
을 그럼 당신은 당신의 몸을 만들고 같은 것을 할 수있는 스프라이트에 연결할 때 :
myPlayerBody.setUserData(new BodyData("Player", myPlayerSprite));
그리고에서 충돌 감지시 :
mPhysicsWorld.setContactListener(
new ContactListener(){
public void beginContact(Contact contact){
final Fixture mB1 = contact.getFixtureA();
final Fixture mB2 = contact.getFixtureB();
if(mB2.getBody().getUserData() != null && mB1.getBody().getUserData() != null){
final BodyData mBD1 = (BodyData)mB1.getBody().getUserData();
final BodyData mBD2 = (BodyData)mB2.getBody().getUserData();
Sprite mSprite1 = (Sprite) mBD1.mEntity;
Sprite mSprite2 = (Sprite) mBD2.mEntity;
// Do whatever you want to do with the sprites
}
}
public void endContact(Contact contact) {
}
public void preSolve(Contact contact, Manifold oldManifold) {
}
public void postSolve(Contact contact,
ContactImpulse impulse) {
}
}
);
을 당신은 정말 당신이 몸매에 스프라이트를 연결할 수있는 PhysicConnector
을 등록했습니다 y :
physicsWorld.registerPhysicsConnector(new PhysicsConnector(sprite, body, true, true));
희망 하시겠습니까?
//Body variable in above Body bodyname;
//associate body with the sprite
body=PhysicsFactory.createBoxBody(physics_world, sprite_name, BodyType.DynamicBody, fixturedefinition);
마지막 라인에서 조명기 정의는 사용자의 선택에 따라 정의됩니다. 사용 스프라이트를 얻을 수있는 심령 이벤트에서
yourBody.setUserData(yourSprite);
: 당신이 만들 때이 같은/엔티티를 스프라이트에
는 몸은 UserData를 설정
public void beginContact(final Contact contact) {
final Body bA = contact.getFixtureA().getBody();
final Body bB = contact.getFixtureB().getBody();
final Object oA = contact.getFixtureA().getBody().getUserData();
final Object oB = contact.getFixtureB().getBody().getUserData();
final Sprite spriteA = (Sprite)oA;
final Sprite spriteB = (Sprite)oB;
}