Привет всем кто читает мой блог. После долгого перерыва я, наконец-то взялся за написание нового урока! И это не последняя новость, я подумал, и решил, что практически все, кто решил узнать о флеше поподробнее, сделали это из-за перспективы создавать игры (ведь я прав?). И с этого момента я буду стараться писать не просто скучные уроки, а буду рассказывать, как эти самые уроки можно применять в играх! Итак, преступим!
Событие клавиатуры:
Событие будет происходить при нажатии клавиши клавиатуры.
Существует два типа событий клавиатуры: KeyboardEvent.KEY_DOWN и KeyboardEvent.KEY_UP
KeyboardEvent.KEY_DOWN – пользователь нажал на клавишу
KeyboardEvent.KEY_UP – пользователь отпустил клавишу
Событие клавиатуры используется практически в любой игре. Самый простой пример - передвижение персонажа по экрану. Этим мы сейчас и займёмся сделав вот такую флешку.
P.S.: Управлять пчелкой можно как стрелками, так и WASD.
Итак преступим!
1. Создайте новый AS3 документ.
2. Создайте вашего персонажа, и дайте ему имя player.
3. Всё, подготовительный этап закончен! Теперь можно приступать к написанию кода!
Событие клавиатуры:
Событие будет происходить при нажатии клавиши клавиатуры.
Существует два типа событий клавиатуры: KeyboardEvent.KEY_DOWN и KeyboardEvent.KEY_UP
KeyboardEvent.KEY_DOWN – пользователь нажал на клавишу
KeyboardEvent.KEY_UP – пользователь отпустил клавишу
Событие клавиатуры используется практически в любой игре. Самый простой пример - передвижение персонажа по экрану. Этим мы сейчас и займёмся сделав вот такую флешку.
P.S.: Управлять пчелкой можно как стрелками, так и WASD.
// переменные определяющие в какую сторону лететь. var up,down,left,right = 0; // слушатель событий нажатия клавиш. stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownF); // слушатель событий отпускания клавиш. stage.addEventListener(KeyboardEvent.KEY_UP,keyUpF); // ENTER_FRAME =) stage.addEventListener(Event.ENTER_FRAME,updatePosF); // функция выполняющаяся при нажатии клавиш. function keyDownF(e:KeyboardEvent):void { if (e.keyCode == Keyboard.UP) { //если верно, то присвоить переменной up значение 1. up = 1; } if (e.keyCode == Keyboard.DOWN) { //если верно, то присвоить переменной down значение 1. down = 1; } if (e.keyCode == Keyboard.RIGHT) { //если верно, то присвоить переменной right значение 1. right = 1; } if (e.keyCode == Keyboard.LEFT)//аналогично. { left = 1; } } // функция выполняющаяся при отпускании клавиш. function keyUpF(e:KeyboardEvent):void { if (e.keyCode == Keyboard.UP) { //если верно, то присвоить переменной up значение 0. up = 0; } if (e.keyCode == Keyboard.DOWN)// аналогично { down = 0; } if (e.keyCode == Keyboard.RIGHT)// аналогично { right = 0; } if (e.keyCode == Keyboard.LEFT)// аналогично { left = 0; } } // а вот и функция которая проверяет не вышел // ли игрок за пределы экрана, и в какую сторону надо лететь. function updatePosF(e:Event):void { if (up == 1)// если up = 1, то лететь вверх { player.y -= 5; } if (down == 1)// если down = 1, то лететь вниз { player.y += 5; } if (left == 1)// если left = 1, то лететь влево { player.x -= 5; } if (right == 1)// если right = 1, то лететь вправо { player.x += 5; } //---------------------------------- // запрет на передвижение, если пчелка возле краёв экрана if (player.y <=player.height/2) { up = 0; } if (player.y >= stage.stageHeight-player.height/2) { down = 0; } if (player.x <= player.width/2) { left = 0; } if (player.x >= stage.stageWidth-player.width/2) { right = 0; } //------------------------------- }Ну вот собственно и всё, что я хотел сегодня рассказать. Желаю удачи в выполнении урока, и конечно-же ДЗ =) ДЗ: сделать так, что-бы пчелка летала как в примере (и на стрелках и на клавишах WASD).
Думаю блоки лучше поменять местами сначала проверка на допустимость действия, а потом уже действие
ОтветитьУдалитьВторая строка выполняется неправильно, у меня все переменные равны нулю только если их по отдельности прописать
ОтветитьУдалитьТы бы добавил спрайтов к уроку,ато приходится в интернете искать.
ОтветитьУдалитькаких спрайтов? вся графика в этом уроке не с интернета, а личного производства
Удалитьа почему у тебя во флешке есть код запрет на передвижение, если пчелка возле краёв экрана но объект все-равно выходит за рамки????
ОтветитьУдалитьхм... а ведь и правда, как-то не заметил...
Удалитьво всяком случае у вас всё должно быть нормально, если следовать всем пунктам урока.
Удалитьа то что летают облака и пчелка махает, это гифы используешь? или на них надо отдельный код писать?
ОтветитьУдалитьобъясните как сделать так чтобы гиф файл состоящий из 5 кадров работал на коде, составленном на 1 кадре? что делать чтобы не было ошибки?
Удалитьвсе просто супер! Но у меня один вопрос вопрос. После публикации создается документ для браузера. и если открыть его или муви браузером, то пчелка не летает. не подскажите, что делать?)
ОтветитьУдалитьНу, кстати, проверка на выход за границы вообще элементарна.
ОтветитьУдалитьПример:
if (player.y <= stage.y)
{
up = 0;
//или player.y = 0;
}
или даже еще проще:
function keyDownF(e:KeyboardEvent):void
{
switch(e.keyCode)
{
case Keyboard.UP:
if(player.y <= stage.y)
player.y = 0;
else
player.y -= 5;
break;
}
}
Ни код в теме, ни коды в комментариях не останавливают объект возле края экрана... Печаль
ОтветитьУдалитьДело в том, что нужно отлавливать коордианты объекта по отношению к объекту scene
ОтветитьУдалитьчтоб не вылетало за пределы:
ОтветитьУдалить//----------------------------------
// запрет на передвижение, если пчелка возле краёв экрана
if (player.y <=player.height/2)
{
up = 0;
player.y +=5;
}
if (player.y >= stage.stageHeight-player.height/2)
{
down = 0;
player.y -=5;
}
if (player.x <= player.width/2)
{
left = 0;
player.x+=5;
}
if (player.x >= stage.stageWidth-player.width/2)
{
right = 0;
player.x-=5;
}
//-------------------------------
}
А какой код, что бы летали облака? Я просто новичок в этом деле.
ОтветитьУдалитьОтвет на вопрос
ОтветитьУдалить(все просто супер! Но у меня один вопрос вопрос. После публикации создается документ для браузера. и если открыть его или муви браузером, то пчелка не летает. не подскажите, что делать?) )
кликни мышой по игровой области, поверь, заработае
ответ на вопрс
ОтветитьУдалить(как сдклать чтоб летали облака?А анимацыя пчелы это гиф?)
Вся анимацыя делается в предела флеша.Там кроме рисования и прогримирования есть и самое главное в программе - анимацыя