我修正了。問題解決了。如何將精靈添加到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(movieclip):
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();
}
其他禮儀我說,像組力和重力,這是沒問題的。 這是哪裏,我認爲是問題的一部分...
Flash中的錯誤:
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 everyone!
編輯:
解決方案:
對不起大家我在我的代碼失敗。錯誤在於,我從來沒有對遊戲說過,當玩家在舞臺上時(我的意思是在關卡中)而不是在菜單中......因爲這個,我在玩家出現之前就打電話給玩家。對不起我的錯誤.. 那麼,類似的東西來調用影片剪輯播放:
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