setScaleCenter (), вызывающий проблему при уменьшении Sprite - AndEngine - PullRequest
2 голосов
/ 15 декабря 2011

Я делаю спрайт в определенном месте и хочу уменьшить его. Вот код, который я использую:

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());, спрайт появится вверх, но его позиция будет немного смещена вправо и вниз, чем исходная указанная позиция.

Я не могу понять это поведение, так же, как и в случае увеличения спрайта.

1 Ответ

4 голосов
/ 06 января 2012

Похоже, вы пытаетесь использовать координаты сцены вместо локальных координат.Если я правильно помню, вы должны предоставить локальные координаты в случае setScaleFunction, попробуйте сделать следующее:

sp_nest_r4.setScaleCenter(0,0); //upper left corner of sprite
...