![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
Здравствуйте
есть код: var dx:Number = enemy.x - hero.X; var dy:Number = enemy.y - hero.Y; if (dx > 0) enemy.x -= 1; else enemy.x += 1; if (dy > 0) enemy.y -= 1; else enemy.y += 1; и клипы врагов enemy по бокам задача врагов, двигаться к герою в центр данный скрипт справляется отлично, но есть одно "но" если враг находится по диагонали от героя, то двигается ровненько и красиво, а если где-то в другом месте, то он или сначала по Y или по X как бы неровненько подходит и потом уже двигается к герою... как бы подкорректировать, что бы враги двигались именно к центру где бы они не находились, т.к. другими словами компенсировали свои координаты по X или по Y в зависимости как далеко находятся от центра по диагонали... что бы все ровно шло и красиво вот как-то так, сорри если не точно объяснил, утро уже :-) заранее спасибо Добавлено через 8 минут все нашел на одном сайте :-) вот кому может пригодится var dx:Number = enemy.x - hero.X; var dy:Number = enemy.y - hero.Y; var angle = Math.atan2(dy, dx); var dist = Math.sqrt(dx * dx + dy * dy); if (dist > enemy.enemySpeed) { var tgtX:Number = enemy.x - enemy.enemySpeed * Math.cos(angle); var tgtY:Number = enemy.y - enemy.enemySpeed * Math.sin(angle); enemy.x = tgtX; enemy.y = tgtY; } Последний раз редактировалось alexcon314; 28.05.2010 в 08:32. |
![]() |
Часовой пояс GMT +4, время: 03:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|