Я знаю, что эта угроза уже устарела, но я только что столкнулся с этой проблемой сам.debugDraw.SetSprite () ожидает flash.display.Sprite.Starling использует starling.display.Sprite;
Если вы используете flash.display.Sprite, то вы не можете добавить его на сцену!
Это обходной путь, который я нашел:*
В основном классе:
mStarling = new Starling(Game, stage);
stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, onContextCreated);
private function onContextCreated(e:Event):void
{
var debugSprite:Sprite=new Sprite();
addChild(debugSprite);
(mStarling.stage.getChildAt(0) as Game).setDebugDraw(debugSprite)
}
В классе Игры:
public function setDebugDraw(debugSprite:flash.display.Sprite):void{
var debugDraw:b2DebugDraw = new b2DebugDraw();
debugDraw.SetSprite(debugSprite);
_world.SetDebugDraw(debugDraw);
}
Обратите внимание, что вам потребуется самая последняя версия Starling.3 месяца назад они добавили параметр stage в Starling, без него он не будет работать.
Это был мой источник: http://forum.starling -framework.org / topic / how-to-draw-2d-elements-for-Box2D-Debug-Draw
Надеюсь, это поможет
Будет