Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 05.03.2010
Сообщений: 32

Герой идет в ту сторону в которую он смотрит

17.06.2011, 17:31. Показов 3052. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Делаю игрушку. Вид сверху. нажимаю и держу клавишу влево или вправо и герой медленно поворачивается влево или в право, когда отпускаю клавишу герой остается повернутым. Вопрос, как теперь сделать так чтоб при нажатии клавиши вперед герой шел именно в ту сторону в которую он повернут? Может надо использовать синус и косинус? Как заставить его туда идти в actionscript2?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2011, 17:31
Ответы с готовыми решениями:

Найти координаты ближайшей точки в которую смотрит объект.
Даны координаты точки в которой находится объект. Дано направление объекта (куда он смотрит) в градусах. (1-360) Найти координаты...

Как сделать чтобы при премещении физикой перед был с той стороны в которую смотрит персонаж
У меня есть персонаж который крутится и нужно чтобы когда я нажимал вперёд он двигался в сторону в которую он смотрит. Использую я...

Kali и W7 - пинг идет в одну сторону
В WMvare создал две машины KaliLinux и Windows 7. Установил подключение к сети Nat. Винда пингует Кали, а Кали Винду нет (причём у неё...

9
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
17.06.2011, 21:31
ActionScript 3
1
2
3
4
5
6
var angle:Number;//задать значение
var distance:Number;//задать значение
var dirx:Number=Math.cos(angle);
var diry:Number=Math.sin(angle);
x+=distance*dirx;
y+=distance*diry;
Примерно так. Писал на коленке, могут быть неточности.
0
0 / 0 / 0
Регистрация: 05.03.2010
Сообщений: 32
17.06.2011, 21:50  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
ActionScript 3
1
2
3
4
5
6
var angle:Number;//задать значение
var distance:Number;//задать значение
var dirx:Number=Math.cos(angle);
var diry:Number=Math.sin(angle);
x+=distance*dirx;
y+=distance*diry;
Примерно так. Писал на коленке, могут быть неточности.
Да уж... Почти ничего не понятно. А не мог бы ты написать полностью код например чтоб были несколько мувиклипов и если нажать на один из них то объект повернется в одну сторону, если нажать на другой то повернется в другую сторону. если вперед или назат то соответственно мувик сдвинится вперед или назад и куда какой код писать?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
17.06.2011, 21:55
На ас2 писать не буду принципиально. Собственно приведенный кусок кода (корректен и для ас2) - это может быть часть обработчика к примеру на клик по стрелке клавиатуры внутри класса вашего персонажа. При этом свойства x и y - его координаты, angle - его угол поворота, distance - то, на сколько необходимо двигать персонаж.
Куда уж понятнее...О_о
0
0 / 0 / 0
Регистрация: 05.03.2010
Сообщений: 32
17.06.2011, 22:53  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
На ас2 писать не буду принципиально. Собственно приведенный кусок кода (корректен и для ас2) - это может быть часть обработчика к примеру на клик по стрелке клавиатуры внутри класса вашего персонажа. При этом свойства x и y - его координаты, angle - его угол поворота, distance - то, на сколько необходимо двигать персонаж.
Куда уж понятнее...О_о
А напиши пожалуйста на ас3 куда и в какие мувиклипы что писать а я потом попробую разобраться.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
17.06.2011, 23:07
Цитата Сообщение от microsoft-vip Посмотреть сообщение
А напиши пожалуйста на ас3 куда и в какие мувиклипы что писать а я потом попробую разобраться.
Я уже написал и описал. В ас3 пишут не в мувиклипы, а "в классы". Приводи куски кода, которые сочиняешь, может что и выйдет из этого. И настоятельно рекомендую забывать про ас1/ас2 - это не удобно, зачастую не стабильно и менее функционально.
0
0 / 0 / 0
Регистрация: 05.03.2010
Сообщений: 32
18.06.2011, 12:09  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
Я уже написал и описал. В ас3 пишут не в мувиклипы, а "в классы". Приводи куски кода, которые сочиняешь, может что и выйдет из этого. И настоятельно рекомендую забывать про ас1/ас2 - это не удобно, зачастую не стабильно и менее функционально.
Я вот как сделал:

onClipEvent(load) {
var povorot=0;
var go=0;
}

onClipEvent(enterFrame) {

_root.povVLevo.onRelease = function() {
povorot-=22;
}

_root.povVPravo.onRelease = function() {
povorot+=22;
}

_root.vpered.onRelease = function() {
go+=22;
}

_root.nazad.onRelease = function() {
go-=22;
}

var angle:Number=povorot;//задать значение
var distance:Number=go;//задать значение
var dirx:Number=Math.cos(angle);
var diry:Number=Math.sin(angle);
x+=distance*dirx;
y+=distance*diry;

_root.obj1._x=x;
_root.obj1._y=y;

} // onClipEvent(enterFrame)

Но у меня объект obj1 никуда не перемещается. Что я написал не так?

Добавлено через 29 минут
Цитата Сообщение от TanaTiX Посмотреть сообщение
Я уже написал и описал. В ас3 пишут не в мувиклипы, а "в классы". Приводи куски кода, которые сочиняешь, может что и выйдет из этого. И настоятельно рекомендую забывать про ас1/ас2 - это не удобно, зачастую не стабильно и менее функционально.
Все получилось. Вот правильный код. Выкладываю его для тех кто тоже ищит как это сделать:

onClipEvent(load) {
var povorot=0;
var go=0;
var obj1x=_root.obj1._x;
var obj1y=_root.obj1._y;
}

onClipEvent(enterFrame) {

_root.povVLevo.onRelease = function() {
povorot-=0.3;
}

_root.povVPravo.onRelease = function() {
povorot+=0.3;
}

_root.vpered.onRelease = function() {
go+=1;
}

_root.nazad.onRelease = function() {
go-=1;
}

var angle:Number=povorot;//задать значение
var distance:Number=go;//задать значение
var dirx:Number=Math.cos(angle);
var diry:Number=Math.sin(angle);
obj1x+=distance*dirx;
obj1y+=distance*diry;

_root.obj1._x=obj1x;
_root.obj1._y=obj1y;

} // onClipEvent(enterFrame)

А как сделать так чтоб сам объект obj1 поволачивался в ту сторону лицом куда он перемещается?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
18.06.2011, 15:10
Вы пишите на ас1. Пока не поздно, учите ас3.
На сколько я помню ас1, то значения povorot и go в каждом кадре у вас становятся равными 0. Поэтому от всех вычислений толку тоже 0.
К тому же у спрайтов нет таких свойств, зато есть свойства _x, _y, _rotation.
0
0 / 0 / 0
Регистрация: 05.03.2010
Сообщений: 32
22.06.2011, 09:46  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
Вы пишите на ас1. Пока не поздно, учите ас3.
На сколько я помню ас1, то значения povorot и go в каждом кадре у вас становятся равными 0. Поэтому от всех вычислений толку тоже 0.
К тому же у спрайтов нет таких свойств, зато есть свойства _x, _y, _rotation.
Я вписал в самый конец строку _root.obj1._rotation=povorot; Но объект после этого крутится на меньшее растояние чем поворачивается. Может надо перевести радианы в градусы или обратно?

Добавлено через 48 минут
Цитата Сообщение от TanaTiX Посмотреть сообщение
Вы пишите на ас1. Пока не поздно, учите ас3.
На сколько я помню ас1, то значения povorot и go в каждом кадре у вас становятся равными 0. Поэтому от всех вычислений толку тоже 0.
К тому же у спрайтов нет таких свойств, зато есть свойства _x, _y, _rotation.
А как ты думаешь вот так будит точное значение или с погрешностями: _root.obj1._rotation=povorot*180/Math.PI;
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
22.06.2011, 21:58
Цитата Сообщение от microsoft-vip Посмотреть сообщение
Может надо перевести радианы в градусы или обратно?
Подобные вещи наверное быстрее проверить(найти в гугле/вики), чем спросить.

Цитата Сообщение от microsoft-vip Посмотреть сообщение
А как ты думаешь вот так будит точное значение или с погрешностями:
Абсолютно точного не будет никогда - это особенности реализации самого ФП (да, по большому счету, и других языков). Суть сводится к тому, что нет смысла в вычисление абсолютно точного числа, если, скажем, достаточно будет иметь значение в пределах единицы с точностью до тысячных. Это так, философия...

По теме - есть такая замечательная команда trace - она ваш самый верный помощник.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2011, 21:58
Помогаю со студенческими работами здесь

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

Как найти скорость изменения чисел в массиве, и в какую сторону идет изменение?
Помогите найти скорость изменнеия цисел в массиве и в какую сторону идет изменения? собственно есть массив чисел, допустим такой: ...

Изменить вид курсора мыши на экране, чтобы он указывал в сторону, в которую движется мышка
как изменить вид курсора мыши на экране, чтобы он указывал в сторону вкоторую движется мышка? Примерно как на картинке. Я думал, может...

У меня простая программа на ассемблере в debug и TD идет, а в окне DOS не идет.
Здравствуйте У меня простая программа на ассемблере в debug и TD идет, а в окне DOS не идет. Не понимаю, в чем дело. COM файл 200...

СМА Атлант 1040т1 (аналог Ardo S1000x) не крутит в одну сторону, не вращается двигатель в одну сторону
СМА Атлант 1040т1 модуль 546059301 не вращает барабан в одну сторону. Проверил резисторы R51a R51b целы. Реле К1,к2 целы, цепи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru