2012-11-19 3 views
3

수정되었습니다. 문제 해결됨.box2d 본문에 스프라이트를 추가하는 방법은 무엇입니까?

저는 as3과 box2D에서 새로운 제품이므로 적어도 배우고 있습니다. 내 스프라이트 (동영상 클립)를 역동적 인 몸체에 추가하는 데 문제가 있습니다. 스프라이트가 나타나지만 오류가 발생하여 모든 게임 프로토 타입이 작동하지 않습니다. 통계학으로 나는 어떤 문제도 가지지 않는다. 내가 무엇을 할 수 있을지?

private var player:b2Body; 
private var mc_player:MovieClip; 

첫째로 내 동적 몸의 기능 : 다음

public function createPlayer(px:int, py:int):void 
    { 
     mc_player = new _pork(); 
     addChild(mc_player); 

     var playerDef:b2BodyDef = new b2BodyDef(); 
     playerDef.position.Set(px/worldScale, py/worldScale); 
     playerDef.type = b2Body.b2_dynamicBody; 


     var playerShape:b2PolygonShape = new b2PolygonShape(); 
     playerShape.SetAsBox(25/2/worldScale, 40/2/worldScale); 

     var playerForce:b2FixtureDef = new b2FixtureDef(); 
     playerForce.shape = playerShape; 

     player = world.CreateBody(playerDef); 
     player.CreateFixture(playerForce); 
    } 

기능이 추가 내가 변수로 설정 코드 전에

:

내 코드입니다 mc (영화 클립) :

private function drawPlayer():void 
    { 
     mc_player.x = player.GetPosition().x * worldScale; 
     mc_player.y = player.GetPosition().y * worldScale; 
    } 

그리고 업데이트에 난 그냥 전화 :

private function update(e:Event):void 
      { 
       drawPlayer(); 
       } 

내가 설정 한 힘과 중력과 같은 추가 된 다른 예절은, 이것은 문제가되지 않습니다. 이

플래시에서 오류 ... 나는 문제가 생각하는 부분입니다 :

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo. at Main/drawPlayer() at Main/update()

내가 어떤 생각이없는 나는 그것을 고칠 수있는 방법

어떤 도움을주세요 ..

Thx 모두!

편집 :

해결 방법 : 내 코드에서 실패

죄송합니다 여러분. 그 오류는 내가 플레이어에게 전화하기 전에 플레이어에게 전화를 걸기 때문에 플레이어가 게임을 무대에 올렸을 때 (나는 레벨에서 의미하는 것이지) 메뉴에있는 것이 아니라고 말한 적이 없다는 것입니다.

private function update(e:Event):void 
{ 
//Call movieclips 
if (mc_player) { 
drawPlayer(); } 
} 

답변

1

/어떻게 갱신()가 호출지고 : 내 실수에 대해 죄송합니다 .. 그래서 그런 일이 동영상 클립 플레이어를 호출하는 것입니다? mc_player가 초기화되기 전에 콜백을 작성한 것이 문제입니까?

+0

당신이 나에게 묻는 것은 다음과 같을 것이라고 생각합니다 : addEventListener (Event.ENTER_FRAME, update); 해당 기능은 메인 (기본) – Gabriel

+0

입니다. ENTER_FRAME 콜백을 추가하기 전에 플레이어가 스테이지에 추가되었는지 확인하십시오. 비슷한 : http://stackoverflow.com/a/13457986/1809570 – Gone3d

+0

그래, 아직 고쳐 ... 내 질문을 편집하고 해결책을 발견 ... 적어도 더 이상 문제가 없어 .. 방법 고맙습니다 :) – Gabriel

관련 문제