我在某个地方做雪碧,我想把它缩小。以下是我正在使用的代码:
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());
,精灵就会出现,但是它的位置会稍微向右和向下移动,而不是原来指定的位置。我想不出这种行为,如果我放大雪碧的尺寸也是一样的。
最佳答案
看起来您正在尝试使用场景坐标而不是局部坐标。
如果我没记错,在setscaleFunction的情况下,您应该提供本地坐标,请尝试执行以下操作:
sp_nest_r4.setScaleCenter(0,0); //upper left corner of sprite