수정되었습니다. 문제 해결됨.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(); }
}
당신이 나에게 묻는 것은 다음과 같을 것이라고 생각합니다 : addEventListener (Event.ENTER_FRAME, update); 해당 기능은 메인 (기본) – Gabriel
입니다. ENTER_FRAME 콜백을 추가하기 전에 플레이어가 스테이지에 추가되었는지 확인하십시오. 비슷한 : http://stackoverflow.com/a/13457986/1809570 – Gone3d
그래, 아직 고쳐 ... 내 질문을 편집하고 해결책을 발견 ... 적어도 더 이상 문제가 없어 .. 방법 고맙습니다 :) – Gabriel