2015-11-30 5 views
0

Игрок, который уменьшен (через несколько секунд, когда игра прогрессирует), но его ассоциированное тело не уменьшено.масштабирование ccsprite и ccphysicsbody

У меня есть создать объект игрока с SpriteBuilder со следующими данными: \

CCSprite with Physics enabled 
- Dynamic Body 
- Allows rotation and affected by gravity 
- Density is 1.00 
- Friction is 0.00 
- Elasticity is 0.00 
- Physics shape is Circle with corner radius 13.00 

Здесь мой игрок совершенен и его физика тела подходит это точно.

Я хочу, чтобы игрок уменьшался по мере продвижения игры, например, игрок оставляет тропы как астероид и в итоге становится меньше от 26 пикселей до 10 пикселей.

Я использую __player.scale += 0.1, чтобы увеличить или уменьшить размер плеера. Но это масштабирует только размер изображения игрока. Это не влияет на физическое тело игрока.

Пожалуйста, предложите мне переопределить PhysBody с CCSprite, чтобы он соответствовал игроку.

ответ

1

Он не будет уменьшать физический порядок, если вы используете только метод setScale(). Вы должны использовать метод setContentSize() для масштабирования вашего физического тела самого спрайта.

Sprite->setScale(Scale); 
Sprite->setContentSize(ContentSize); 

Приведенный выше код будет масштабировать изображение спрайта и его физическое устройство в соответствии с вашими аргументами.