Основы программирования на Fenix - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: Sega Dreamcast (/forum-2.html) +--- Форум: Fenix (/forum-12.html) +--- Тема: Основы программирования на Fenix (/thread-186.html) |
Основы программирования на Fenix - alex - 28.10.2007 16:39 Примечание
Данная статья написана на основе статьи EvilDragon’на ”A Beginner's Tutorial by EvilDragon with a lot of help by Josebita” И является по сути её вольным переводом на русский язык. О всех ошибках и неточностях перевода, а также любые замечания и предложения по данной статье просьба писать сюда Глава 1 - процедуры, функции и переменные. 1. Процессы или как обрабатывается код программы В принципе, компьютер обрабатывает программу линию за линией от начала до конца, подобно чтению книги. Если вы создали shoot-em up игру, он должен запустить её так: Код: Начало: Это самое элементарное, и я думаю, вы понимаете это. Она просто делает все необходимое в игре, от начала до конца и снова переходит в начало, этот цикл повторяется снова и снова. Конечно, нам необходимо несколько частей в программе (что происходит когда вас убивают, или вы убиваете врага), но это просто показывает, как программы работали ранее ... Итак, преимущество этого метода программирования: понятный для всех по структуре код. Но, как только ваша игра станет более сложной, цикл будет все больше и больше, и в итоге код превратится в кучу текста в котором сложно что-то понять. Этот метод подойдет лишь для создания простеньких игр. Итак, каким образом программа пишется сегодня? Многозадачность - это ключевое слово. Многозадачность означает, что несколько программ (называемых также процессами) обрабатываются одновременно. Таким образом, вместо одного большого цикла (как выше), где строка за строкой идет обработка движений, проверка на столкновение и т.д., мы имеем теперь более мелкие программы/процессы, выполняющие все это одновременно. Теперь мы можем написать процессы следующим образом (каждая строка представляет процесс): Код: Ваш корабль (нажатие клавиш, движение, отрисовка, создание процесса пули, проверка на столкновение) Вместо одного большого, немного запутанного кода, мы имеем три простых, не столь запутанных кода выполняющихся одновременно. Между прочим: Каждая пуля врага имеет свой собственный процесс. Возможно также использование одного процесса для нескольких объектов в игре. Таким образом, намного проще написать более сложную программу. Найти ошибки в коде также легко, потому что если все работает, за исключением движения корабля, вы точно будете знать в каком процессе её искать. Но это также означает, что мы не можем просто написать код с нуля (ну, если вы не создаете сложные игры): Перед тем как начать создавать игру, нам нужно подумать и записать все необходимые процессы для игры. В противном случае, добавив что-то здесь и там, он превратится в запутанный код и вы просто не поймете где какие процессы описаны. Имейте это в виду. Это не пустые разговоры, вы, безусловно, поймете насколько это важно, после того как застрянете в середине пути и несможете понять, почему программа нехочет работать как надо. Некоторые интересные особенности, которые вы должны помнить при работе с процессами в Fenix: Код: Если процесс создает другой процесс, первый называется "Отец", а другой "сын". Это означает: Если приостановить или убить процесс "Отец", вы также приостановите или убьёте процесс "сын". Ну, представим себе ситуацию, shoot-em up игра: Есть около 20 патронов и 10 врагов на экране (только эти 30 процессов). Затем вас убили, игра закончилась, и появился главный экран. На главном экране не должно быть врагов и пуль, соответственно их нужно убить. Что лучше – убить процесс отца, автоматически убив все другие процессы или убить все процессы вручную - один за другим? Или если нужно поставить игру на паузу: Вы же небудете приостанавливать все процессы по одному, не так ли? BTW: процесс также циклирует или где-то он будет проходить только один раз до конца, а затем убьет себя. На этом мы завершаем первый взгляд на процессы. Не волнуйтесь, если что-то пока неясно, вы еще узнаете, как работать с процессами, создавая какую-нибудь игру. продолжение следует... Основы программирования на Fenix - zaero - 29.10.2007 01:46 просьба. Алекс это довольно таки важная тема. Не мог бы ты правильно оформить ее??? Т.е. что надо выделить и т.д... КАк сделаешь удалю свой пост. Основы программирования на Fenix - alex - 20.11.2007 23:10 ок поправлю, просто щас времени нет, да и это только начало статьи (и то в черновом варианте) так что как появится свободное время статью допишу и само собой подкорректирую её. Основы программирования на Fenix - nov - 01.07.2008 10:39 Продолжение будет? Основы программирования на Fenix - alex - 01.07.2008 21:05 будет |