Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Основы программирования на Fenix
Автор Сообщение
alex Не на форуме
Ветеран
*****

Сообщений: 1276
Зарегистрирован: 11.07.2005
Рейтинг: 2
Сказал спасибо: 4
Поблагодарили 69 раз(а) в 53 сообщ.
Сообщение: #1
Основы программирования на Fenix
Примечание
Данная статья написана на основе статьи 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: процесс также циклирует или где-то он будет проходить только один раз до конца, а затем убьет себя.

На этом мы завершаем первый взгляд на процессы. Не волнуйтесь, если что-то пока неясно, вы еще узнаете, как работать с процессами, создавая какую-нибудь игру.

продолжение следует...

Здесь была подпись.
(Последний раз сообщение было отредактировано 16.03.2008 в 21:50, отредактировал пользователь alex.)
28.10.2007 16:39
Найти все сообщения Цитировать это сообщение
zaero Не на форуме
Супермодератор
******

Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
Сообщение: #2
Основы программирования на Fenix
просьба.
Алекс это довольно таки важная тема. Не мог бы ты правильно оформить ее??? Т.е. что надо выделить и т.д...

КАк сделаешь удалю свой пост.

[Изображение: Ubuntu-User.png]
Dreamshell fAn
(Последний раз сообщение было отредактировано 29.10.2007 в 01:46, отредактировал пользователь zaero.)
29.10.2007 01:46
Вебсайт Найти все сообщения Цитировать это сообщение
alex Не на форуме
Ветеран
*****

Сообщений: 1276
Зарегистрирован: 11.07.2005
Рейтинг: 2
Сказал спасибо: 4
Поблагодарили 69 раз(а) в 53 сообщ.
Сообщение: #3
Основы программирования на Fenix
ок поправлю, просто щас времени нет, да и это только начало статьи (и то в черновом варианте) так что как появится свободное время статью допишу и само собой подкорректирую её.

Здесь была подпись.
20.11.2007 23:10
Найти все сообщения Цитировать это сообщение
nov Не на форуме
Продвинутый
***

Сообщений: 216
Зарегистрирован: 06.02.2005
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #4
Основы программирования на Fenix
Продолжение будет?
01.07.2008 10:39
Вебсайт Найти все сообщения Цитировать это сообщение
alex Не на форуме
Ветеран
*****

Сообщений: 1276
Зарегистрирован: 11.07.2005
Рейтинг: 2
Сказал спасибо: 4
Поблагодарили 69 раз(а) в 53 сообщ.
Сообщение: #5
Основы программирования на Fenix
будет

Здесь была подпись.
01.07.2008 21:05
Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Fenix opensource games alex 6 26722 05.07.2010 21:23
Посл. сообщение: alex
  Fenix: Вопросы, замечания, предложения и т.д. alex 2 16288 05.07.2010 19:35
Посл. сообщение: alex
  Fenix expand DLL alex 6 25331 16.02.2009 17:17
Посл. сообщение: SWAT
  Fenix полезные ссылки alex 0 10734 30.09.2007 23:24
Посл. сообщение: alex

Переход:


Пользователи просматривают эту тему: 2 Гость(ей)