Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   управление разворотом (http://www.flasher.ru/forum/showthread.php?t=158212)

SDS 16.06.2011 20:15

управление разворотом
 
Приветствую! Я конкретный новичек в этом. Делаю не большую игрушку. Не могу реализовать такое: Стоит герой на клавиатуре нажимается кнопка, герой поворачивается вправо. Затем на клавиатуре нажимается опять эта же кнопка и он поворачивается влево (т.е _xscale = 70 и _xscale = -70) Спасибо.

mooncar 16.06.2011 21:03

То есть "поворачивается" - это зеркальное отражение?
Добавляете слушаетля клавиатуры, определяете обработчик событий нажатия, в нем проверяете код нажатой клавиши и в зависимости от него делаете этот разворот для нужного мувика.
В хелпе есть примеры работы у клавиатурой.

SDS 17.06.2011 00:24

Да, зеркальное отражение. Вот про слушателя клавиатуры я бы послушал) Можно примерчик? А с переменными можно как нибудь ? . И еще где "хелп"? это где "ЧАВО"?

mooncar 17.06.2011 01:13

Жметe F1 в прграмме Adobe Flash, переходите к AS2 Language Reference, далее класс Key.
Тут вам и синтаксис, и примеры.

PS. Потрудитесь разобраться, как пользоваться хелпом, это половина успеха в работе с флешем.

PPS. Слушатель - это тоже "переменная", класса Object.

vivado 17.06.2011 11:33

Цитата:

Сообщение от SDS (Сообщение 1004192)
Приветствую! Я конкретный новичек в этом. Делаю не большую игрушку. Не могу реализовать такое: Стоит герой на клавиатуре нажимается кнопка, герой поворачивается вправо. Затем на клавиатуре нажимается опять эта же кнопка и он поворачивается влево (т.е _xscale = 70 и _xscale = -70) Спасибо.

Вот в ооочень давно делал. Вроде все доступно описано.
Поворот персонажа

mooncar 17.06.2011 11:49

vivado, нежелательно учить новичков неправильным вещам - записи кода на объектах.

vivado 17.06.2011 12:04

Цитата:

Сообщение от mooncar (Сообщение 1004317)
vivado, нежелательно учить новичков неправильным вещам - записи кода на объектах.

Яж предупредил что ооочень давно делал еще на Macromedia Flash 5, если глянешь код то там еще tellTarget присутствует ))) Кстати а что плохого если он на мувик перса повесит код, подумаешь раньше все так делали пока AS 3.0 не появился, вот тогда то и пошла мода все в одном кадре писать.
А вы хоть бы чем новичкам помогли ток критикуете. Самое простое сделать так...

Например для игры с видом сверху
SDS создай мувик со своим персонажем повернутым наверх и повесь на этот мувик код

Код AS1/AS2:

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;}
}

Можно сделать и по другому, писать весь код в одном кадре и не вешать на отдельные объекты, но для начала можно и так...

SDS 17.06.2011 19:07

Цитата:

Сообщение от vivado (Сообщение 1004315)
Вот в ооочень давно делал. Вроде все доступно описано.
Поворот персонажа

Спасибо, но это не то) надо чтобы именно мувик поворачивался зеркально по одной и той же клавише, по двум могу сделать а как по одной нет)

Добавлено через 2 минуты
Цитата:

Сообщение от vivado (Сообщение 1004327)
Яж предупредил что ооочень давно делал еще на Macromedia Flash 5, если глянешь код то там еще tellTarget присутствует ))) Кстати а что плохого если он на мувик перса повесит код, подумаешь раньше все так делали пока AS 3.0 не появился, вот тогда то и пошла мода все в одном кадре писать.
А вы хоть бы чем новичкам помогли ток критикуете. Самое простое сделать так...

Например для игры с видом сверху
SDS создай мувик со своим персонажем повернутым наверх и повесь на этот мувик код

Код AS1/AS2:

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 минуты
Жду еще подсказк) игра почти готова а вот этой функции очень как не хватает))

vivado 20.06.2011 12:53

Введи новую переменную например HeroNapr - для хранения значения отражения и доп. переменную например a которая будет принимать значения 1 и -1 для задания знака отражения. Ну и на нажатие своей кнопки обращайся к функции в которой будет что то типа этого:

Код AS1/AS2:

function povorot(){
if (NaprHero==-100 || a==-1){ a=1; }
else { a=-1; }
hero._xscale = NaprHero*a; //Поворот объекта, hero - имя мувика твоего героя
trace (NaprHero*a);
}

Но правильнее наверное задать условие при котором мувики твоего героя и противника будут поворачиваться друг к другу автоматически, например...
Код AS1/AS2:

 if (hero._x>enemy._x) { 
hero._xscale=-100
enemy._xscale=100
}
 if (hero._x<enemy._x) {
hero._xscale=100
enemy._xscale=-100
}

ну в общем разберешься )))


Часовой пояс GMT +4, время: 07:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.