![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2014
Сообщений: 8
|
Возможно ли, и как сделать если да данное:
Имеется: Пол (по которому игрок бегает и прыгает). Участок в полу (ограниченный отрезок). Вопрос: Стоя на данном отрезке при нажатии кнопки (допустим ctrl) перевернуть игрока вниз головой под пол, ну то есть "отразить" с другой стороны пола так, что бы притяжение работало, но уже сверху. Если да, то какой скрипт писать. Спасибо. Добавлено через 8 часов 26 минут ![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 128
|
Задача вполне решаемая, и довольно простая, ИМХО.
1. На месте нужного отрезка рисуете невидимый прямоугольник - по размеру вашего героя. 2. Пишете обработчик события "нажатие на кнопку" (не уверен, что получиться именно с ctrl, но с другими получится наверняка). 3. В обработчике проверяете, пересекается ли ваш герой с прямоугольником. Если да - просто меняете мувик (изменяете координаты, поворачиваете на угол и др.), возможно, потребуется сделать два мувика и менять один на другой. Все. Если вам нужно что-то более конкретное, без имеющегося у вас кода помочь вряд ли возможно. Как там реализована эта "гравитация"? |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 8
|
На ином форуме дали подсказку изменения гравитации (сам додумался до поворота на 180) столкнулся с проблемой отсутствия прыжка в состоянии "реверса" (перевернутом), пытался исправить но добился лишь постоянного прыжка без остановки(то есть в AS2.0 как я понял нельзя задать клипу, так сказать, две физики одной масти. Или же можно, но ограничивать их жескими условиями?).
Цитата:
Так же есть несколько вопросов, которые я задам когда решу проблему с реверсом и уже с примером получившегося кода Последний раз редактировалось Ecks; 06.06.2014 в 06:06. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 128
|
Еще раз - как гравитация у вас реализована? Если по уму, то должно быть достаточно ввести в формулы расчетов некий коэффициент, равный -1, или вообще один раз поменять знак у одной / нескольких величин, чтобы "прыгал" и "падал" ваш герой в противоположном направлении. Возможно, такой коэффициент в формулах даже есть уже. А второй мувик мог бы понадобиться, если бы вам не понравился внешний вид героя, перевернутого на 180 градусов. Но если гравитация реализована неэффективно, тогда да - придется для "перевернутого" героя все заново писать.
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 8
|
Последний раз редактировалось Ecks; 06.06.2014 в 12:35. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 128
|
Во первых, вы используете крайне устаревший и глючный синтаксис. К тому же, я вообще не понял, чего вы хотите добиться приведенным кусочком кода.
Вот простой пример реализации (весь код пишется в первом кадре временной шкалы, на сцене - два мувика - ground - земля, и hero - персонаж): var jamp_force = 15; var gravity = 1; var koef_povorot = -1; var timer_pryg; var jamp_force_real = jamp_force; var is_pryzhok = false; function povorot() { hero._rotation+=180; hero._y+=ground._height * koef_povorot; } function pryzhok() { hero._y+=jamp_force_real * koef_povorot; jamp_force_real-=gravity; if(hero.hitTest(ground)) { clearInterval(timer_pryg); jamp_force_real = jamp_force; is_pryzhok = !is_pryzhok; } } var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if ((Key.isDown(Key.DOWN)) and (koef_povorot!=1)){ koef_povorot = 1; povorot(); } if ((Key.isDown(Key.UP)) and (koef_povorot!=-1)) { koef_povorot = -1; povorot(); } if ((Key.isDown(Key.SPACE)) and (!is_pryzhok)){ timer_pryg = setInterval(pryzhok,20); is_pryzhok = !is_pryzhok; } } Key.addListener(keyListener); И вместо строки (повернуть на 180 градусов): можно написать (отразить сверху вниз): - зависит от того, что именно вам нужно. Последний раз редактировалось Sergey_A; 06.06.2014 в 15:27. |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 8
|
Ну какой знал такой и юзал. Не изучал новые способы. Огромное спасибо. Теперь придется учить новый
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 128
|
Упор не на том, что этот синтаксис устаревший, а на том, что он ГЛЮЧНЫЙ, неудобный. Если вы с первого раза напишете все без ошибок, то разницы не заметите, а если будет какая-нибудь досадная мелочь, то искать ее будет очень трудно и долго. Поэтому лучше бы выучить приведенный мною способ - тоже далеко не новый, непрофессиональный, но намного более удобный для написания кода.
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 8
|
Соглашусь с поиском, я убил некоторое время пока ждал ответа на форуме и наконец-то нашел ошибку отпрыгивания. Но все равно результат не ахти
Приведенный кусочек, кстати, это как раз обычная гравитация Добавлено через 12 минут Хм, код не функцианирует. Выскакивает окно ошибок, в нем ни какой информации, а содержимое в статичном режиме. Видать учить мне теперь многое Последний раз редактировалось Ecks; 06.06.2014 в 15:51. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 128
|
1. Убедитесь, что вы создали файл именно для AS2.0 (в параметрах публикации).
2. Убедитесь, что на сцене есть 2 нужных мувика, и им назначены соответствующие имена. 3. Создавая мувик героя задавайте его точку регистрации снизу по центру. Хотя, если в окне ошибок никакой информации нет... не знаю. А вы в чем пишете вообще? |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|