Показать сообщение отдельно
Старый 15.01.2012, 17:38   #12
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Управление. Нажатые кнопки -> угол поворота

sin45 0.7071// константа для угла
/// ...
// определение 0\+1\-1 "вектора" кнопок:
keyX keyboard_check(vk_right) - keyboard_check(vk_left);
keyY keyboard_check(vk_down) - keyboard_check(vk_up);
// присваиваем это собственно вектору движения
// (тут еще можно умножить на скорость передвижения):
velX keyX;
velY keyY;
// если движение по диагонали, то умножаем на константу
// зачем тут нормализация...
if (keyX != && keyY != 0) {
    
velX *= sin45
    velY 
*= sin45
}
// теперь velX, velY хранят значения "вектора" движения. 
Вроде бы все хорошо. Никаких хранений направлений или потерь длины вектора (особенно если задавать константу большей точности)
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием