2011-12-15 7 views
2

私は特定の場所にスプライトを作成しています。ここで私が使用しているコードは次のとおりです。setScaleCenter()はスプライトを縮小する際に問題を引き起こします - AndEngine

sp_nest_r4 = new Sprite(460f, 720f, txRg_nest_maroon); 
sp_nest_r4.setScaleCenter(sp_nest_r4.getX(), sp_nest_r4.getY()); 
sp_nest_r4.setScale(0.454545f); 
bdy_nest_r4 = PhysicsFactory.createCircleBody(mPhysicsWorld, sp_nest_r4, BodyType.StaticBody, fxd_spring); 
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(sp_nest_r4, bdy_nest_r4, true, true)); 
sp_nest_r4.setUserData(bdy_nest_r4); 
mScene.attachChild(sp_nest_r4); 

今の問題は、私は規模のセンターを設定すると、スプライトが表示されていないと消えてしまうことです。しかし、sp_nest_r4.setScaleCenter(sp_nest_r4.getX(), sp_nest_r4.getY());行を削除した場合、スプライトが表示されますが、スプライトの位置は、元の指定された位置よりも下に右にわずかに&にシフトしています。

私はスプライトを拡大する場合と同じですが、この動作を把握することはできません。

答えて

4

ローカル座標の代わりにシーン座標を使用しようとしているようです。 正しく覚えていれば、setScaleFunctionの場合はローカル座標を指定する必要があります。次のようにしてください:

sp_nest_r4.setScaleCenter(0,0); //upper left corner of sprite 
関連する問題