PDA

Просмотр полной версии : Как переместить большой спрайт в определенное место


ascilotar
12.09.2011, 19:40
Есть фоновый спрайт, типа игровое поле. у него изначально отрицательные координаты для x и y.
далее, я делаю ему scaleX и scaleY ну допустим на 0,75 и хочу, что бы то же место, которое было в центре экрана до изменения масштаба было и после изменения...

уже 5 часов бьюсь над этим, не могу алгоритм составить.
если что начальные данные:
x = -1152
y = -1152
width = 2400
height = 2400
мож, кто хоть пример покажет где такое уже есть? или подскажет где почитать...

Wolsh
12.09.2011, 22:29
http://flasher.ru/forum/showpost.php?p=763405&postcount=16
и реализация этого на AS2 (http://flasher.ru/forum/showpost.php?p=764072&postcount=27)

ЗлОй ПрОграММер
12.09.2011, 23:09
x *= 0,75;
y *= 0,75;

точно не уверен но попробуйте мож получиться

goodguy
13.09.2011, 07:24
точно не уверен но попробуйте мож получиться
С каких пор числа с плавающей точкой у нас пишутся через запятую? О_о
Но сама идея верная.
Разве что не особо гибкая. Я бы при изменении ширины и высоты спрайта умножал его координаты на его же скейлинг.

sprite.x *= sprite.scaleX;
sprite.y *= sprite.scaleY;

ascilotar
13.09.2011, 11:52
к сожалению предложенные методы не работают.
то есть при отдалении они примерно делают то что надо, однако обратное приближение уводит камеру непонятно куда.

спасибо за ответы

ascilotar
13.09.2011, 13:48
sprite.x = int(this.x / (sprite.last_width - application.WIDTH) * (sprite.width - application.WIDTH));
sprite.y = int(this.y / (sprite.last_height - application.HEIGHT) * (sprite.height - application.HEIGHT));
решилось так