Всього залишено коментарів: 25

Sumbit
Січень 21, 2013 о 20:20

Дякую за статтю. Прочитав із задоволенням.

Богдан
Лютий 20, 2013 о 22:22

Ярослав, а що ви можете порадити тим людям, котрі здатні закодити свою першу гру, але на перепоні стоїть відсутність графіки і невміння її малювати? Адже для першої гри наймати художника або вступати до художньої школи, м’яко кажучи, не хочеться…

Ярослав Федорак
Лютий 20, 2013 о 22:46

Богдане, так, з малюванням все дещо складніше. Але в загальному діє той самий принцип – якщо ви не хочете наймати художника, купувати графіку чи брати її із відкритих джерел, то залишається тільки практикуватися і розвивати свої художницькі навички. Починати можна з найпростішої графіки (кільця та квадратики), і з часом переходити до більш складних елементів.

Alex
Лютий 21, 2013 о 09:43

Богдан, можу порадити вам пройти 2 безкоштовні курси тут:
http://www.murlyka.com/kursy/fga/
http://www.murlyka.com/kursy/adfga/
Я сам зараз освоюю малювання/флеш починаючи з 12 правил Діснея, закінчуючи спеціалізованими сайтами, блогами, книжками. В неті того добра навалом. Головне всі корисні посилання/сайти/блоги/книги структуризувати у ворді по пріорітетах і по-черзі освоювати, а то сумбур буде. (наступив на ці граблі)
П/С
Ярослав, дай будь ласка відповідь у темі про хінти.

Богдан
Лютий 27, 2013 о 22:07

Alex, дякую за посилання! От першу гру (там графіка вся “крадена”) закінчу і буду вчитись

Богдан
Лютий 27, 2013 о 22:15

До речі, Ярославе, над чим (я маю на увазі ігри, звичайно) зараз працюєш, якщо не секрет? До речі, я зафанатів від Симбіоза)

Ярослав Федорак
Лютий 27, 2013 о 23:19

Зараз працюю над грою, яку робив для конкурсу “швидкої розробки”. На днях планую закінчити, і, думаю, що напишу окрему статтю про цю гру.

Радий, що тобі сподобався Симбіоз. Мені завжди приємно чути схвальні відгуки. Після закінчення робіт над конкурсною грою швидш за все візьмуся за level pack для Симбіозу.

Богдан
Березень 1, 2013 о 14:58

О, класно

Alex
Березень 25, 2013 о 10:16

Ярославе, чи є в планах написання ще кількох уроків по as3?
(враховуючи новий досвід Simbiosis та When I was young)

Ярослав Федорак
Березень 26, 2013 о 13:46

Так, я планую по можливості публікувати уроки AS3. Але в даний момент розробка в пріоритеті, тому уроки публікуватиму коли з’явиться вільний час.

Зараз працюю над продовженням гри Symbiosis.

Богдан
Вересень 28, 2015 о 14:50

можеш надіслати мені список імпортів, слухачів і функцій?
просто не можу знайти пормальний сайт .
і ще одне – ось мій код
stop();
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun);
function fun (e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT) {
korablik.x -=90;
korablik.rotation =180;
}
if (e.keyCode == Keyboard.RIGHT) {
korablik.x +=90;
korablik.rotation =0;
}
if (e.keyCode == Keyboard.DOWN) {
korablik.y +=90;
korablik.rotation =90;
}
if (e.keyCode == Keyboard.UP) {
korablik.y -=90
;
korablik.rotation =270;
}
}
stop();
воно все функціонує. але сама функція
KeyboardEvent.KEY_DOWN
сюди не підходить. мені потрібно функцію, типу KEY_PRESS, кої в флеш не має

Ярослав Федорак
Вересень 29, 2015 о 09:49

Богдане, для клавіатури в AS3 передбачено два типи подій: KEY_DOWN і KEY_UP. Перша спрацьовує коли користувач натискає клавішу, друга – коли відпускає. З їх допомогою можна реалізувати практично будь-який функціонал. Навіщо Вам додаткові події клавіатури?

Що стосується імпортів, слухачів та функцій, то для кожної програми вони будуть різними. Загального списку не існує. Або, можливо, я не правильно зрозумів, що Вам потрібно.

Богдан
Жовтень 2, 2015 о 09:15

Коли я прописую код для символа KEY_DOWN, то виходить не дуже плавно, ніби я друкую на клавіатурі. Ну, коли ти в ворді друкуєш, коли ти зажав якусь букву, спочатку з’являється одна, а потім через пів секунди по порядку швидко з’яляються інші. В програмі те саме.
В твоїй грі про жабу блоки плавно їдуть, а в мене дуже ривками

Богдан
Жовтень 2, 2015 о 09:19

і список просто існуючих імпортів і слухачів та функцій

Богдан
Жовтень 2, 2015 о 09:26

stop();
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun);
function fun (e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT) {
korablik.x -=5;
korablik.rotation =180;
}
if (e.keyCode == Keyboard.RIGHT) {
korablik.x +=5;
korablik.rotation =0;
}
if (e.keyCode == Keyboard.DOWN) {
korablik.y +=5;
korablik.rotation =90;
}
if (e.keyCode == Keyboard.UP) {
korablik.y -=5
;
korablik.rotation =270;
}
}
stop();

ось мій код

Богдан
Жовтень 2, 2015 о 09:31

надіюсь ти мене зрозумів. Ций код до гри аж ні як не підходить.

Ярослав Федорак
Жовтень 2, 2015 о 17:17

Так, я зрозумів що ти маєш на увазі. У грі з жабкою там принцип роботи блока зовсім інший. При натисканні на кнопку ти просто вказуєш напрямок руху для блока, а пересуваєш його через ентерфрейм.

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp)

function onKeyDown (e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT) {
vx = -5;
}
if (e.keyCode == Keyboard.RIGHT) {
vx = 5;
}
if (e.keyCode == Keyboard.DOWN) {
vy = 5;
}
if (e.keyCode == Keyboard.UP) {
vy = -5;
}
}

function onKeyUp (e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT) {
vx = 0;
}
if (e.keyCode == Keyboard.RIGHT) {
vx = 0;
}
if (e.keyCode == Keyboard.DOWN) {
vy = 0;
}
if (e.keyCode == Keyboard.UP) {
vy = -0;
}
}

Потім додаєш функцію, яка виконується кожен фрейм і в ній просто оновлюєш координати об’єкта:

stage.addEventListener(Event.ENTER_FRAME, onEnterFrame)

function onEnterFrame (e:Event):void
{
korablik.x += vx;
korablik.y += vy;
}

Богдан
Жовтень 13, 2015 о 10:49

Я зрозумів, дуже дякую

Богдан
Жовтень 13, 2015 о 10:50

а можеш сказати яка функція відповідає за доторкання двох символів
??

Bogdan Voznyuk
Жовтень 18, 2015 о 14:52

в твоїй грі – Симбіоз, мене цікавить як зробити момент атаки.
Я вже по твоїм урокам зробив декілька дуже простих ігор, типу як на андроїд piano, лабіринт(мишкою не можна доторкатися до стінок)
Але я навіть не вмію зробити бонуси. Я більше року шукаю уроки:
в ютюбі, на різних сайтах, шукав книги. Можеш меді підказати де є безкоштовні уроки, що могли б мені допомогти трохи піднятися в програмуванні action script? Я дуже довго знав лише paskal7. Але щоб перейти на іншу мову програмування це не завада?

Ярослав Федорак
Жовтень 19, 2015 о 11:05

Безкоштовних уроків існує дуже багато. Але абсолютна більшість із них – англійською мовою. Якщо це не проблема, можна просто пошукати у тому ж ютубі за запитом “make game as3″.

Ось, наприклад, перше, що видав мені ютуб. Начебто непоганий урок для початківців: https://youtu.be/JeqYk7cv56k?list=PL290A384555ABF630

І ще дуже раджу знайти і почитати книги, описані в статті.

Богдан
Жовтень 19, 2015 о 14:38

a такий спосіб підійде?

var direction:String;

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyboardF);

stage.addEventListener(KeyboardEvent.KEY_UP, keyboardw);

stage.addEventListener(Event.ENTER_FRAME, moveBall);

function keyboardF (e:KeyboardEvent):String {
if (e.keyCode == Keyboard.RIGHT) {
direction = “right”;
} else if (e.keyCode == Keyboard.LEFT) {
direction = “left”;
} else if (e.keyCode == Keyboard.UP) {
direction = “up”;
} else if (e.keyCode == Keyboard.DOWN) {
direction = “down”;

}
function keyboardw (e:KeyboardEvent):String {
if (e.keyCode == Keyboard.RIGHT) {
direction = “stop”;
} else if (e.keyCode == Keyboard.LEFT) {
direction = “stop”;
} else if (e.keyCode == Keyboard.UP) {
direction = “stop”;
} else if (e.keyCode == Keyboard.DOWN) {
direction = “stop”;

return direction;

}

function moveBall(e:Event) {

switch (direction) {
case ‘up’ :
ball.y -= 4;
break;

case ‘down’ :
ball.y += 4;
break;

case ‘right’ :
ball.x += 4;
break;

case ‘left’ :
ball.x -= 4;
break;

case ‘stop’ :
break;
}

}

Ярослав Федорак
Жовтень 19, 2015 о 16:48

На перший погляд повинно працювати, але треба тестити.

Ярослав
Листопад 13, 2015 о 15:29

Ярослав, можеш підказати, як зробити, щоб коли я натискаю 2 клавіші, то виконується функція?

Ярослав Федорак
Листопад 13, 2015 о 17:24

Можна, наприклад, ввести boolean-змінну firstKeyPressed, якій присвоювати значення true при натисканні першої клавіші. А при натисканні другої клавіші перевіряти, чи firstKeyPressed = true і в залежності від цього виконувати функцію.

Поділіться своєю думкою