Просмотр полной версии : управление разворотом
Приветствую! Я конкретный новичек в этом. Делаю не большую игрушку. Не могу реализовать такое: Стоит герой на клавиатуре нажимается кнопка, герой поворачивается вправо. Затем на клавиатуре нажимается опять эта же кнопка и он поворачивается влево (т.е _xscale = 70 и _xscale = -70) Спасибо.
То есть "поворачивается" - это зеркальное отражение?
Добавляете слушаетля клавиатуры, определяете обработчик событий нажатия, в нем проверяете код нажатой клавиши и в зависимости от него делаете этот разворот для нужного мувика.
В хелпе есть примеры работы у клавиатурой.
Да, зеркальное отражение. Вот про слушателя клавиатуры я бы послушал) Можно примерчик? А с переменными можно как нибудь ? . И еще где "хелп"? это где "ЧАВО"?
Жметe F1 в прграмме Adobe Flash, переходите к AS2 Language Reference, далее класс Key.
Тут вам и синтаксис, и примеры.
PS. Потрудитесь разобраться, как пользоваться хелпом, это половина успеха в работе с флешем.
PPS. Слушатель - это тоже "переменная", класса Object.
Приветствую! Я конкретный новичек в этом. Делаю не большую игрушку. Не могу реализовать такое: Стоит герой на клавиатуре нажимается кнопка, герой поворачивается вправо. Затем на клавиатуре нажимается опять эта же кнопка и он поворачивается влево (т.е _xscale = 70 и _xscale = -70) Спасибо.
Вот в ооочень давно делал. Вроде все доступно описано.
Поворот персонажа (http://blogs.mail.ru/bk/vivado/E5BF9A81FEAE762.html)
vivado, нежелательно учить новичков неправильным вещам - записи кода на объектах.
vivado, нежелательно учить новичков неправильным вещам - записи кода на объектах.
Яж предупредил что ооочень давно делал еще на Macromedia Flash 5, если глянешь код то там еще tellTarget присутствует ))) Кстати а что плохого если он на мувик перса повесит код, подумаешь раньше все так делали пока AS 3.0 не появился, вот тогда то и пошла мода все в одном кадре писать.
А вы хоть бы чем новичкам помогли ток критикуете. Самое простое сделать так...
Например для игры с видом сверху
SDS создай мувик со своим персонажем повернутым наверх и повесь на этот мувик код
onClipEvent (load){
speed = 7; // Скорость объекта
}
onClipEvent (enterFrame) //для каждого кадра
{
if (Key.isDown(Key.LEFT)) { //При нажатии кнопки НАЛЕВО
_x -= speed;
_rotation = 270; //Поворот объекта
}
if (Key.isDown(Key.RIGHT)) { //При нажатии кнопки НАПРАВО
_x += speed; //Изменение скорости
_rotation = 90; //Поворот объекта
}
if (Key.isDown(Key.UP)) { //ПРИ нажатии кнопки ВВЕРЖ
_y -= speed; //Изменение скорости
_rotation = 0; //Поворот объекта
}
if (Key.isDown(Key.DOWN)) { //При нажатии кнопки ВНИЗ
_y += speed; //Изменение скорости
_rotation = 180; //Поворот объекта
}
//Проверка на нажатие двух клавиш сразу
//и присваивание поворота в нужную сторону
if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP))
{_rotation = 315;}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN))
{_rotation = 215;}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN))
{_rotation = 135;}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP))
{_rotation = 45;}
}
Можно сделать и по другому, писать весь код в одном кадре и не вешать на отдельные объекты, но для начала можно и так...
Вот в ооочень давно делал. Вроде все доступно описано.
Поворот персонажа (http://blogs.mail.ru/bk/vivado/E5BF9A81FEAE762.html)
Спасибо, но это не то) надо чтобы именно мувик поворачивался зеркально по одной и той же клавише, по двум могу сделать а как по одной нет)
Добавлено через 2 минуты
Яж предупредил что ооочень давно делал еще на Macromedia Flash 5, если глянешь код то там еще tellTarget присутствует ))) Кстати а что плохого если он на мувик перса повесит код, подумаешь раньше все так делали пока AS 3.0 не появился, вот тогда то и пошла мода все в одном кадре писать.
А вы хоть бы чем новичкам помогли ток критикуете. Самое простое сделать так...
Например для игры с видом сверху
SDS создай мувик со своим персонажем повернутым наверх и повесь на этот мувик код
onClipEvent (load){
speed = 7; // Скорость объекта
}
onClipEvent (enterFrame) //для каждого кадра
{
if (Key.isDown(Key.LEFT)) { //При нажатии кнопки НАЛЕВО
_x -= speed;
_rotation = 270; //Поворот объекта
}
if (Key.isDown(Key.RIGHT)) { //При нажатии кнопки НАПРАВО
_x += speed; //Изменение скорости
_rotation = 90; //Поворот объекта
}
if (Key.isDown(Key.UP)) { //ПРИ нажатии кнопки ВВЕРЖ
_y -= speed; //Изменение скорости
_rotation = 0; //Поворот объекта
}
if (Key.isDown(Key.DOWN)) { //При нажатии кнопки ВНИЗ
_y += speed; //Изменение скорости
_rotation = 180; //Поворот объекта
}
//Проверка на нажатие двух клавиш сразу
//и присваивание поворота в нужную сторону
if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP))
{_rotation = 315;}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN))
{_rotation = 215;}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN))
{_rotation = 135;}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP))
{_rotation = 45;}
}
Можно сделать и по другому, писать весь код в одном кадре и не вешать на отдельные объекты, но для начала можно и так...
Спасибо. У меня игра типа "Бокс" вид сбоку два персонажа бегают,дерутся, машут, кричат, вот надо чтоб каждый из них мог повернутся в противоположную сторону. А то бывает что спиной назад приходиться по рингу бегать)
Добавлено через 4 часа 43 минуты
Жду еще подсказк) игра почти готова а вот этой функции очень как не хватает))
Введи новую переменную например HeroNapr - для хранения значения отражения и доп. переменную например a которая будет принимать значения 1 и -1 для задания знака отражения. Ну и на нажатие своей кнопки обращайся к функции в которой будет что то типа этого:
function povorot(){
if (NaprHero==-100 || a==-1){ a=1; }
else { a=-1; }
hero._xscale = NaprHero*a; //Поворот объекта, hero - имя мувика твоего героя
trace (NaprHero*a);
}
Но правильнее наверное задать условие при котором мувики твоего героя и противника будут поворачиваться друг к другу автоматически, например...
if (hero._x>enemy._x) {
hero._xscale=-100
enemy._xscale=100
}
if (hero._x<enemy._x) {
hero._xscale=100
enemy._xscale=-100
}
ну в общем разберешься )))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.