2011-12-15 47 views
2

我在某個位置製作了一個精靈,我想縮小它。這裏是我使用的代碼:setScaleCenter()在縮小Sprite時導致問題 - 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