Як почати програмувати на action script 3 якщо ви ніколи не програмували!

Як почати програмувати на action script 3 якщо ви ніколи не програмували!

Ще до того як я почав робити гри, я знав, що без програмування я далеко не поїду. Але вся проблема була в тому, що я своєю творчою натурою (дизайнера), не міг зрозуміти весь «сенс» коду. Як виявилося надалі, програмувати на АС3 дуже легко, найголовніше зрозуміти ЛОГІКУ мови. У цій статті я спробую пояснити логіку АС3 для тих хто ніколи не стикався з програмуванням взагалі.

І так уявімо, ви йдете по тротуару, і вам треба перейти на іншу сторону. Які дії ви виконаєте? Спершу подивіться чи немає машин зліва, потім якщо їх немає почнете рух, дійшовши до середини ви зупинитеся і подивіться направо, потім якщо машин немає ви продовжите рух. І ось ми на іншій стороні. Спробуємо уявити це з боку вашого мозку:
  • Початкова мета - перейти дорогу.
  • Перша дія - подивитися на ліво.
  • Стан - якщо машин немає, йдемо. Якщо машина є, небезпека, чекаємо.
  • Друга дія - подивитися на право.
  • Стан - якщо машин немає, йдемо. Якщо машина є, небезпека, чекаємо.
  • Кінцева мета - дорога перейдена, мета досягнута.
На такому принципі будується практично будь-яку мову програмування. Ви задаєте мета, створюєте дію, перевіряєте стан і чекаєте завершення мети. Наведу приклад як дану схему застосувати конкретно в грі. У нас є синій квадрат, при натисканні на нього він повинен переміститися на 100 пікселів вліво і зупинитися.
  • Початкова мета - перемістити квадрат на 100 пікселів вліво.
  • Стан спокою - очікуємо натискання на квадрат.
  • Дія при натисканні - рухаємо квадрат.
  • Стан при русі - перевіряємо наскільки зрушився квадрат, якщо початкова мета досягнута зупиняємося, інакше рухаємося далі.
  • Кінцева мета - квадрат пересунувся на 100 пікселів, мета досягнута.
Як бачите нічого складного тут немає. Зрозумівши логіку коду, я зрозумів які дії мені потрібно прописувати для руху квадрата і найголовніше я зрозумів навіщо я повинен це робити. З тих пір коли я сідаю писати новий код, я завжди подумки намагаюся уявити собі таку структуру: що і коли кожен ігровий об'єкт буде робити, які дії робити або які події очікувати.
Пробуйте - і у вас все вийде.

Ем. Робіть вже уроки вистачить філосовствованія XD

Толку від уроків нуль, якщо людина не розуміє навіщо / що він це робить. Код просто копіюється, без розуміння суті процесу.

Можна філософствування розбавити шматочками коду =) якщо людина не знає що таке цикли оператори умови функції то ніякі філософські тексти не допоможуть йому це зрозуміти.
набагато дельнее сказати що пересунути квадрат можна так: sq.x--; sq.x- = 1; sq.x = sq.x-1; ніж просто сказати: рухаємо квадрат.

Багато речі не зрозуміють пояснень поки не побачать конкретний приклад =)

Згоден, філософія повинна ілюструватися конкретними прикладами, інакше це буде тільки теорія ...

Хлопців, в цьому то і проблема, то що ви вже знаєте що до чого, і вам здається що «філософія це погано». Я ж згадую себе рік тому, коли мені не вистачало саме логіки коду, і ніякі приклади і уроки не допомагали.

Ні, ти не правильно пройняв, що ми говоримо ... Я не говорив, що це погано, просто якщо відразу ж додати невеликі шматки коду демонструють цю філософію на практиці, це буде набагато корисніше. ИМХО. )

Це і не потрібно так докладно писати, це база.
Набір функцій, операцій, типи даних, правила побудови виразів, методи передачі параметрів.
Якщо це ООП мову, то ще додасться візок ООП правил для даного мови.
Все це потрібно вивчити 1 раз при вивченні мови. А з огляду на що багато мов схожі, цього вистачить на багато разів.
Це як для художника - поняття палітри, методи передачі перспективи, світла і тіні. Або як ноти для музиканта.
Детально варто описувати якісь особливості. Щось рідко використовується, обхід бага, спосіб роботи з чимось, про що немає виразної документації або якийсь складний алгоритм наприклад.

Це і не потрібно так докладно писати, це база База для кого? Я коли почав займатися АС3, я знав 1 команду - «stop ();" і то тому що я її юзал в анімації. І чесно, мені б дуже не завадило ось таке розжовування коду.

Ви все, звичайно, правильно описали. Це алгоритмічне мислення. Завдання розбивається на підзадачі => підзадачі розбиваються на менш абстрактні підзадачі => ... => пишеться псевдокод => транслюється в код.
Тільки для тих, хто не знає бази (типи даних, конструкції мови, структури даних платформи, принципи ООП, і т.д. і т.п.) - це абсолютно марно, тому що людина не зможе «спустити завдання» на низькі рівні абстракції.
Тому краще б ви порадили новачкам вчити матчастину, а там в хорошій книзі - в прикладах показують процес «від завдання, до коду».

Я про логіку AS нічого не чув, але є логіка програмування:

Якщо хочеться запрограмувати складну задачу A, то треба її розбити на більш дрібні завдання Bi. Якщо якась задача Bi - тривіальна, то її програмуємо. Якщо Bi - складна, то чинимо з нею як з завданням A.

А ось якщо замінити «програмувати» на «вирішити», то вийде універсальний метод позбавлення від проблем :)

Треба знати базові речі мови.
А далі найскладніше - скласти алгоритм
Потім оформити у вигляді псевдокоду (опціонально).

Запрограмувати те, що вже зрозуміло і розкладено по поличках не складає труднощів.

пхххххххх ... Ну розбивати задачу на підзадачі думаю повинен вміти кожна людина, практично несвідомо. Але щось не кожен стає програмістом. Видно даних 2х абзаців явно не достатньо.

Описувати логіку написання коду - потрібно. Але тільки не так вже сильно перебільшуючи тему.