ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
18 февраля 2019 5:52
Вход Регистрация Забыли пароль ?

megainformatic - Создание интернет-магазина
              Добро пожаловать в систему управления сайтом megainformatic cms !  
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

Новогодняя дискотека 2013 на megainformatic точка ru

megainformatic - Программируем на C++ с использованием MFC

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

подробнее

Creating game on fle game engine - Simple game / Создание игры на fle game engine - Simple game

2. Объекты



read paper in english

Теперь поговорим о игровых объектах.





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







Любая игра помимо спрайтов всегда включает игровые объекты.

Вообще говоря, игровой движок всегда должен содержать две взаимоисключающие возможности - с одной стороны какой-то стандартный набор объектов и инструментов работы с ними, а с другой - возможности неограниченного их расширения.

Это необходимо, поскольку замечательная игра всегда интересна чем-то нестандартным, необычным. Если же игровой движок не поддерживает возможность создания чего-то нестандартного - то все игры, создаваемые на нём будут почти одинаковы, что являет собой ОГРОМНЫЙ МИНУС, поскольку игры интересны именно в их многообразии и разнообразии. А если они все будут почти одинаковы ...

Итак, что же такое игровой объект ?

Это программная сущность - т. е. код и связанные с ним данные, которые в игре выполняют определенные действия.

В нашем случае для спрайта Прыгающего Шарика мы создадим игровой объект AI_object (Artifical Intelligence) - т. е. объект, которым будет управлять программа.

Для пола мы создадим другой объект - Player - объект, которым будет управлять игрок.

Таким образом AI_object - это программный объект, управляемый программой, создающий в игре какие-то задачи, которые игрок должен решить. Программа должна будет каким-то образом перемещать Прыгающий Шарик так, чтобы он не попадал в ямы, которые ему подсовывает игрок.

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

Мы используем Scene Editor - редактор для создания игровых сцен для создания нашей будущей игровой сцены.



Скачать SceneEditor 1.0.1 -

SceneEditor 1.01 Редактор 2d сцен fle game engine


Размер sfx-архива: 3 Mb. Также содержит примеры нескольких простых сцен 2d.





Оформить подписку на fle game engine -


Стоимость: 600 руб.

Тогда вы получите более свежую версию Scene Editor fge 1.0.2 (на текущий момент) с поддержкой большего количества возможностей: сетка, настройки, скроллинг и другие. В бесплатной версии эти возможности не поддерживаются. подробнее о составе платной подписки.





На рисунке показано начало создания игровой сцены.

начало создания игровой сцены

Добавлены 2 песчаных блока с ямой и 2 без неё.

В Scene Editor fge можно создавать 2d сцены любых мыслимых конфигураций. Например можно создать изометрическую сцену.

В Scene Editor fge можно создавать 2d сцены любых мыслимых конфигураций. Например можно создать изометрическую сцену

Особенность изометрических сцен, состоит в том, что они содержат игровые объекты размещенные в сцене по её глубине - т. е. используются 3 координаты - x, y и z. Получается своего рода псевдо 3d-сцена.

Создание настоящих 3d сцен также скоро станет доступно в Scene Editor fge.

Но для большинства игр имеющихся возможностей Scene Editor уже сейчас вполне достаточно. Т. к. 3d игры создавать значительно труднее в плане эффектной графики. А 2d проще, да и понятнее большинству. Хотя усвоив азы и пройдя далеко вперед Вы, в будущем, возможно, научитесь создавать и 3d игры.

fle game engine совсем не ограничен ни в чём и с самого своего рождения сразу же поддерживал как 2d так и 3d игры. На нашем сайте Вы можете найти их.

Итак, создание сцены в Scene Editor сводится к следующему:

Выбираем пункт меню File > New - чтобы создать новую сцену.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2

Но прежде чем Вы сделаете это, Вам нужно добавить в список ресурсов изображения игровых спрайтов, которые мы рассмотрели на странице 1, а также добавить описания этих объектов, чтобы редактор мог работать с ними.

Вся процедура происходит так:

Открываем папку, где у вас установлен редактор сцен Scene Editor fge 1.0.2, например,

SceneEditor\

Открываем папку
SceneEditor\Media\textures\environment\

там может быть примерно такая структура вложенных папок -

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - добавление описаний игровых ресурсов

Папки ai_player и floor я создал для нашего урока и разместил там игровые ресурсы - спрайт шарика и спрайты песчаного блока -

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - добавление описаний игровых ресурсов - спрайт прыгающего шарика

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - добавление описаний игровых ресурсов - спрайты песчаных блоков

Для того, чтобы Вы сами попробовали проделать всё вышеописанное, Вы можете скачать бесплатную версию Scene Editor fge 1.0.1 или приобрести платную подписку на fle game engine, в состав которой также входит Scene Editor, но более свежих версий и содержащий больше возможностей, например в версии Scene Editor fge 1.0.2. добавлена возможность работы с сеткой grid, а также введен скроллинг сцены по вертикали и горизонтали и целый ряд новых опций и дополнений.



Далее откроем файл

SceneEditor\Media\textures\environment\desc\scene_editor_types.txt

И добавим в него 2 новых типа -

ai_player; 10;
floor; 11;
test; 12;
значение test изменим с 10 на 12, т. к. это специальный тип который всегда должен быть последним.

Т. е. мы добавили тип ai_player для управления прыгающим шариком и floor для песчаных блоков.



Далее в файле
SceneEditor\Media\textures\environment\desc\scene_editor_texlist.txt

добавим записи

ball; ai_player; ai_player\jump.tga; 64; 128; 0; 0; 4; 8.0f; 14.0f;
floor; floor; floor\floor.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor_front; floor; floor\floor_front2.tga; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor2; floor; floor\floor2.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;

Первая запись - это игровой объект ball, относится к типу ai_player, находится в файле ai_player\jump.tga, имеет параметры 64х128 - пикселей размер 1 кадра спрайта, 0, 0, - смещение по x и y до начальной анимации, 4 - число кадров по горизонтали, 8.0f - число кадров анимации, 14.0f - скорость анимации;

Записи для floor интерпретируются аналогичным образом. Думаю Вы сами сообразите, что они означают. Всё полностью аналогично.

Когда всё это сделано и изменения сохранены, запускаем Scene Editor, немного ожидаем пока он загрузит все ресурсы, далее приступаем к созданию нашей первой игровой сцены на движке fle game engine !

По умолчанию редактор не содержит ничего в сцене, но если Вы уже что-то пробовали добавлять - то выполните команду File > New чтобы создать новую сцену.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - File > New

Итак, слева Вы видите игровые объекты, которые можно добавить в сцену.

Нас будут интересовать только floor и ai_player

Выбрав floor2 наводим указатель на нужное место в сцене и кликаем левой кнопкой мыши.

Блок встанет на нужное место.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - выбор и вставка блока floor2

Чтобы блоки сразу выравнивались по опорным точкам сетки нужно включить опцию Options > Snap to Grid. Для ячейки сетки задан размер 100х100 пикселей, как настраивать другие размеры я расскажу далее.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - Чтобы блоки сразу выравнивались по опорным точкам сетки нужно включить опцию Options > Snap to Grid

Действуя по описанному принципу нужно заполнить всю игровую сцену блоками с ямами и без как показано на рисунке.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - пример игровой сцены

Далее обязательно сохраните результат своей работы - File > Save и указав имя файла вашей создаваемой сцены. Для сцен рекомендую завести отдельную папку, назвав её например scenes.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - сохранение игровой сцены

При создании игровой сцены, во время добавления объектов, может возникнуть ситуация, когда вам потребуется заменить игровой объект или совсем убрать.

Это можно сделать задав опцию Options > Get Object On Click.

Если опция включена - то клик правой кнопкой мыши на игровом объекте делает выбранным его копию, которую Вы можете добавить в сцену. Это удобно, когда в сцене много разнообразных объектов, и Вы вдруг решили добавить куда-то еще один такой же, но забыли как он называется.

Если опция отключена - то клик правой кнопкой мыши приводит удалению объекта из указанной позиции, а сам он становится текущим и выделяется красной рамкой. Чтобы убрать эту рамку можно нажать клавишу [Del].

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - удаление игрового объекта

Так можно удалять из сцены ненужные или ошибочно добавленные объекты. Кроме того, если Вы хотите чтобы никакой из объектов не был выбран - выберите слева в списке объектов объект none.

Иногда может возникнуть ситуация когда Вы ошибочно или намеренно наложили один объект поверх другого. Тогда чтобы выбрать какой-то из них появится диалоговое окно. В котором нужно выбрать требуемый объект и нажать ОК.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - выбор объекта из нескольких наложенных друг на друга

Итак, если всё понятно, и Вы создали игровую сцену и сохранили её, теперь разберемся как добавить в неё несколько особенностей.

1) Ранее мы говорили, что шарик должен проваливаться в ямы. Попробуйте выбрать объект ball и наведите его на одну из ям. Кстати, чтобы уменьшить шарик удерживайте нажатыми одновременно клавиши [Shift] + [Alt] - и нажав левую кнопку мыши перемещайте её указатель, уменьшив шарик до нужных размеров.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - Шарик

У вас могут возникнуть еще дополнительные вопросы: почему шарик не виден когда выбран - или то появляется, то пропадает при перемещении над песчаными блоками.

Ответ прост: его координата z такова, что заставляет его выводиться не перед блоками, а за ними. Значит нужно её изменить.

Для этого отключите опцию Options > Auto Calc Z.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - отключение опции автоматического рассчёта Z

Далее выберите объект none и принудительно задайте значение z = 0.8

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - принудительное определение значения z для объекта

После этого снова выберите объект ball и вы увидите что он теперь всегда виден поверх песчаных блоков.

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - шарик поверх песчаных блоков

Экспериментальным путём попробуйте найти такое значение z - при котором шарик находится за блоками, а при небольшом его увеличении уже перед блоками.

Для этого вам всего лишь нужно снова включить опцию Options > Auto Calc Z.

Алгоритм вычисления координаты Z можно изменять. Но в контексте данного урока для нас это пока не важно, потому на этом не будем останавливаться.

Также Вы наверняка заметили, что значение z = 0.8 не совсем подходящее для ball, т. к. блоки в нижней части сцены всё равно перекрывают шарик.

Чтобы этого не происходило надо задать значение z = 0.78

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - шарик поверх песчаных блоков в нижней части сцены

На рисунке в поле z вы видите значение равное 0.779999971, т. к. это точное значение z, которое хранится в памяти.

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

У нас остался вопрос, который мы рассмотрим на следующей - 3 странице. Он заключается в том, что шарик, как Вы помните (см. страницу 1), должен проваливаться в яму, а сейчас Вы можете видеть, что он везде выводится поверх ям.

[назад] [далее]

подробнее

     
 

Конструируем свой сайт - полезные статьи для начинающих строителей сайтов.

Мы рассмотрим как создать простейший счетчик посетителей и задействовать при этом использование баз данных MySQL. Этим самым мы постараемся как говориться "убить сразу двух зайцев" - освоить начальные сведения по PHP и разобраться с тем, как работать с базами данных MySQL из кода на PHP.

 
     
 

В этой статье я кратко опишу принцип работы с базами данных MySQL.

В первую очередь что нужно иметь под рукой:

1) набор Web разработчика denver - этот набор включает все необходимые Вам программы для отладки и разработки Вашего сайта, включая PHP, MySQL, Apache, PERL, PostgreSQL;

2) и конечно же Вам понадобится какой-либо удобный html-редактор, например неплохим выбором является Macromedia Dreamweaver;

 
     
  После того, как Вы скачаете всё необходимое на свой ПК, нужно установить эти программы и начать работу.  
     
 

Если пакет denver корректно установлен в Вашей системе, то при вызове браузера Internet Explorer и наборе в его адресной строке ссылки

http://localhost/

 
     
  Вы будете попадать на заглавную страницу denver'а.  
     
 

Чтобы создать новую базу данных нужно выбрать на открытой странице пункт [Заведение новых БД и пользователей MySQL], либо в адресной строке браузера набрать ссылку и выполнить переход по ней -

http://localhost/denwer/Tools/addmuser/index.php

 
     
 

Для чего нужны базы данных ? Чтобы накапливать какую-либо информацию, а затем выдавать её в зависимости от различных запросов к базе данных.

Для работы сайтов удобными являются базы данных MySQL. К тому же, в языке PHP также разработанном для целей сайтостроения, реализованы все возможности работы с такими базами данных.

Аббревиатура SQL означает не что иное как Structured Query Language - Язык Структурированных Запросов. Иными словами это специальный язык, при помощи которого, можно обращаться к базам данных для целей их создания, изменения и извлечения из них необходимых данных.

 
     
  По понятным причинам доступ к базам данных Вашего сайта может получить только определенный пользователь. Процедура доступа также требует использования пароля.  
     
  Поэтому нам остается следовать этим правилам, т. е. чтобы создать новую базу данных для своего сайта выполняем:  
     
 

Пароль администратора MySQL

это поле оставляем пустым

Имя базы данных

counterdb

Логин пользователя

можно ввести то же имя,

counterdb

а можно другое, например

admin

Пароль

тут уж вводите всё, что угодно, но желательно использовать латинские буквы и цифры, другие символы и спецсимволы использовать нельзя!

например -

Ji7yVasb2

...еще раз:

повторяем ввод пароля для проверки

Ji7yVasb2

 
     
  Жмём кнопку Создать БД и пользователя  
     
  Введенные данные еще запишите отдельно, т. к. они Вам потребуются в коде php, который Вы будете использоваться для обращения к базе данных.  
     
 

Теперь нужно создать структуру будущей базы данных.

Для этого вернитесь на главную страничку денвера, либо используйте в адресной строке следующий путь -

http://localhost/Tools/phpmyadmin/index.php

 
     
  В открывшейся страничке нажимаем кнопку Databases и в открывшейся таблице выбираем нужную.  
     
 

Создаем новую таблицу для базы данных -

Create new table on database

в поле Name

вводим имя таблицы, например

visitors

в поле Number of fields

количество полей (столбцов) таблицы, например,

3

 
     
  Жмём кнопку Go  
     
 

На открывшейся страничке описываем поля нашей базы данных.

Мы создаем простейшую базу данных, для целей подсчета посетителей на сайте.

Всего у нас будет три поля:

currentday

total

today

Для всех этих полей используем тип INT

По своему желанию можете добавить еще какую-либо информацию, например заполнить поля comment

 
     
 

далее Жмём кнопку Save внизу страницы

Наша база данных создана!

 
     
  После успешного создания новой таблицы в базе данных Вам будет показан вид SQL запроса, который был использован для создания таблицы в этой базе данных.  
     
  Далее мы напишем код, на PHP который будет отображать счётчик посетителей сайта и заносить данные в созданную базу данных.  
     
 

Запускаем Ваш html-редактор, создаем новый пустой html-документ, заполняем его следующим кодом -

<HTML>
<HEAD>
<TITLE>db</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<?php
if ($rc = mysql_connect("127.0.0.1", "
admin", "Ji7yVasb2"))
{
$day = date("Y-m-d");

mysql_select_db("counterdb");
$table = "visitors";

$s = mysql_query("SELECT * FROM $table");

$a = mysql_fetch_array($s);



$a[total] = $a[total] + 1;



if ($day !==$a[currentday])
{
$a[currentday]=$day;
$a[today]=1;

}
else {
$a[today] = $a[today]+1;
}


mysql_query("UPDATE visitors SET total = '$a[total]', today = '$a[today]', currentday = '$a[currentday]'");

echo "<table border=1 bordercolor=green><tr>
<td colspan=1 align=center>посетителей</td></tr>
<tr><td align=center>всего</td><td align=center>сегодня</td></tr>
<tr><td align=center>$a[total]</td>
<td align=center>$a[today] </td></tr></table>";
}
else {
echo "Error!";
}

?>
</BODY>
</HTML>

 
     
 

Сохраняем созданный документ в формате php в папку

C:\WebServers\home\localhost\www\mysite

 
     
 

Т. е. предполагается, что denver Вы установили в папку C:\WebServers

а затем перешли в подпапку

C:\WebServers\home\localhost\www

и там создали свою рабочую папку mysite

 
     
  Чтобы проверить как работает наш счётчик вводим в адресной строке браузера следующую ссылку -  
     
  http://localhost/mysite/counter.php  
     
  Здесь предполагается, что Вы назвали документ содержащий php-код для реализации счетчика counter.php  
     
  Если выполнять многократные переходы по данной ссылке путём повторного ввода адреса в строке браузера, либо обновляя страницу, то данные счётчика выводимые на созданной странице будут изменяться.  
     
 

В случае если при работе кода возникли ошибки Вы получите сообщение с указанием номера строки, в которой произошла ошибка.

Вам нужно проверить правильность написания всех имен, параметров, символов и идентификаторов.

То же происходит если код работает неверно - например счетчик не изменяется, оставаясь постоянно на значении 1/1.

Это говорит о том, что Вами допущена логическая ошибка, которую синтаксический анализатор php обнаружить не может.

Решение - очень внимательно проверить весь код от самой первой до самой последней буковки !!!

 
     
  В следующей нашей статье мы рассмотрим как добавить созданный счетчик на все страницы Вашего сайта  
     
подробнее

     
 
megainformatic cms free

Быстрая и Компактная Система Управления Вашим Сайтом - megainformatic cms express files

megainformatic cms express files - это простое, быстрое и очень компактное решение для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql. Вместо этого используются файловые базы данных. Поэтому Вы можете использовать систему даже на хостинге с поддержкой php, но без поддержки баз данных my sql.

Очень проста в установке - достаточно вам скопировать все файлы на ваш хостинг и сайт готов к работе !!!

В комплект входят 3 готовых шаблона, модули поиска и карты сайта, а также статьи по основам создания сайта.

Стоимость: 100 руб.

 
     
 

Быстрая и Компактная Система Управления Вашим Сайтом - megainformatic cms express files

Особенности:

- очень компакта и быстра в работе и развертывании сайта;

- открытый исходный код на php;

- быстрая и простая установка;

- подробное описание возможностей;

 
     
 

Чтобы создать свой сайт быстро и легко - приобретите megainformatic cms express files всего за 100 рублей, получите дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг.

Ваш сайт готов к работе !!!

 
     
  Для добавления новых статей на ваш сайт - достаточно выложить файл контента в нужную папку, например papers/my_paper1  
     
 

А затем добавить описание в файл data/papers.csv для этой статьи.

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

Модули поиска и карты сайта автоматически собирают информацию о добавленных статьях из файла статей.

 
     
 

Если возможности megainformatic cms express files, вам кажутся ограниченными и Вы хотите чего-то большего - обратите внимание на следующие продукты -

megainformatic cms e-pro

 
     
  megainformatic cms e-shop  
     
  megainformatic cms e-mailer  
     
  Удачи вам в создании собственного виртуального интернет-пространства !!!  
     
     
     
подробнее

ГЛАВА 8 - Смерть или искупление или избавление



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

Мир совсем не так однозначен и так открыт как нам иногда кажется. Это лабиринт. И выйти из него можно, но не всегда или почти никогда в том месте, где ты ожидаешь.

Опасность может подстерегать тебя там, где ты её совсем не ждёшь. Она может таиться внутри тебя самого. Самым опасным твоим врагом можешь быть ты сам. Это звучит парадоксально, но это так. Самое большое зло и самое большое добро мы чаще всего делаем себе сами. Причём почти никогда не отдавая себе в этом отчёта, потому что как нам кажется - мы не стоим того, чтобы думать о себе. Но это неправильно. Думать о себе нужно. Любить себя тоже нужно и необходимо.

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

Я говорил и повторю это еще раз - не будьте одинаковыми всю жизнь. Старайтесь расти, меняться, видеть такое, что не видят другие. Делать что-то такое - что будет вам не только полезно или необходимо - но и просто приятно и приносит не только материальные блага - но и простое счастье и ощущение морального удовлетворения от того, что ты просто сказал кому-то доброе слово, ответил улыбкой на серьезный или озабоченный взгляд или просто помог, не требуя ничего взамен.

Именно тогда и придёт то, что называется настоящим счастьем.

День и ночь. Рождение и смерть. Молодость, взросление и старение.

Давным давно я не понимал что всё это - необходимость. Почему бы не всегда был день ? Зачем нужна ночь ? Почему и для чего мы приходим в этот мир ? Зачем мы умираем ? Почему не можем быть бессметрны ? Почему нужна молодость, взросление и почему мы старимся ?

Почему мир так сложен и не поддается никакой общей схеме, правилу или закону ? И нет никаких ни законов ни правил, которые были всегда и везде неоспоримы. Почему нет абсолютной истины ?

Почему смысл бытия познать невозможно ? Но почему при этом пытаться познать этот смысл можно и нужно ?

Ответ простой - мы учимся ценить то, что у нас есть. Если бы всё поддавалось определенным законам и правилам и было заранее предопределено - мы бы никогда не могли достичь чего-то в жизни. Мы просто бы не ценили то, что имеем в данный текущий момент и не стремились бы к чему-то новому.

Конечно это одна из точек зрения на этот мир, одна из версий и опять же не истина в последней инстанции - это лишь очередной взгляд на то, каким мы видим этот мир.

Грешен ли он или жесток, добр ли он к нам и приносит ли то, чего мы от него ждём.

     
  Набор разработчика игр - Нечто: Необъяснимое - в плену желаний  
     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 1] [далее]  
     
  Vertices - Вершины - страница 1  
     
 

Итогом вставки новой созданной иконки должно стать для Вас сохранение изменений в проект (кнопка Save All на панели инструментов MSVS) и выполнением сборки проекта - по клавише [F7]. Еще раз напомню, что для сборки отладочной версии Debug нужно выбрать соответствующую конфигурацию проекта - в панели инструментов есть соответствующий выпадающий список.

Release - конфигурация отличается отсутствием отладочной информации, поэтому отлаживать приложение в таком режиме сборки нельзя. Зато когда Вы отловите все ошибки в коде, тогда можно создать окончательный релиз.

 
     
 

Если Вы уже вдоволь наигрались с проектом CreateDevice - сохраняем все внесенные изменения и закрываем проект File > Close Solution.

Переходим к примерам Vertices, Matrices, Lights, Textures, Meshes

 
     
  Все настойки в этих проектах нужно делать абсолютно аналогично, как это описывалось на протяжении наших предыдущих уроков, а более конкретно в уроке - Самый первый шаг - страница 3  
     
 

В примере Vertices рассматривается как работать с вершинами в 3d-пространстве.

Теперь уже наше приложение будет выполнять более полезную работу - выведет на экран разноцветный треугольник.

 
     
  пример Vertices  
     
  По сравнению с предыдущим примером CreateDevice здесь уже рассматривается как создается и инициализируется вершинный буфер для модели треугольника. Треугольник хоть и плоский, но это уже модель, в примере Matrices показано как создать его вращение вокруг своей оси (по оси Y).  
     
 

Функция wWinMain включает использование новой функции -

// Create the vertex buffer
if( SUCCEEDED( InitVB() ) )
{

//...

}

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

// Enter the message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}

Т. е. если сообщения поступают в приложение, они обрабатываются, если нет - выполняется функция Render - другими словами отрисовка выполняется во время нахождения приложения в состоянии бездействия Idle - это и есть то состояние, когда нет системных сообщений, адресованных Вашему приложению.

 
     
 

Функция InitVB

HRESULT InitVB()
{
// инициализируем вершины создаваемого треугольника

//заметьте, что цвет каждой вершины в формате AARRGGBB задается именно здесь!

//о формате задания цвета и определении конкретного цвета мы говорили в уроке - CreateDevice страница 2
CUSTOMVERTEX vertices[] =
{
{ 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

// Создаем вершинный буфер. Здесь мы выделяем достаточно памяти для вершин
// (из буфера по-умолчанию) для хранения 3 вершин в собственном формате. Мы также
// определяем FVF, так что вершинный буфер знает, какие данные он хранит.

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}

// Теперь мы заполняем вершинный буфер. Для этого вызываем Lock() для VB
// для получения доступа к вершинам. Этот механизм необходим, поскольку
// буферы могут располагаться в памяти графического адаптера.

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof( vertices ), ( void** )&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof( vertices ) );
g_pVB->Unlock();

return S_OK;
}

 
     
 

Функция Cleanup теперь включает освобождение объекта вершинного буфера.

Функция Render включает новый код для рисования модели треугольника -

// начало сцены
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// Рисуем треугольник из вершин в буфере. Процесс включает несколько

// шагов. Мы передаем вершины в поток, поэтому первое - это определение
// источника для этого потока, это и есть наш вершинный буфер. Затем
// нам нужно позволить D3D узнать какой вершинный шейдер использовать.

// Полнофункциональные, настраиваемые вершинные шейдеры - это
// отдельная тема для разговора, но в большинстве случаев вершинный шейдер -
// просто FVF (Flexible Vertex Format), так что D3D узнает какой тип вершин
// мы применили. Наконец, Мы вызываем функцию DrawPrimitive() которая

// выполняет фактическое рисование
// нашей геометрии (в данном примере - всего лишь 1 треугольник).

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

// конец сцены
g_pd3dDevice->EndScene();
}

 
     
  Функция MsgProc не включает обработки сообщения WM_PAINT, потому что все d3d-приложения должны выполнять отрисовку находясь в состоянии Idle.  
     
 

Обратите внимание также на начало модуля Vertices.cpp

//-----------------------------------------------------------------------------
// Глобальные переменные
//-----------------------------------------------------------------------------

LPDIRECT3D9 g_pD3D = NULL; // используется для создания D3DDevice
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; // наше устройство отрисовки
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // буфер для хранения вершин

// структура определяющая собственный тип вершин
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // преобразованная позиция вершины
DWORD color; // цвет вершины
};

// наш настраиваемый тип вершин FVF, который определяет какой тип вершин

// используется для их описания
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)

 
     
  Чтобы проверить насколько Вам ясно как работать с вершинами - попробуйте вывести вместо треугольника - квадрат. Цвета вершин также измените.  
     
  изображение модели квадрата  
     
 

Сначала посмотрите на приведенный рисунок и определите как были описаны координаты для треугольника:

150.0f, 50.0f - это вершина, отмеченная на рисунке цифрой 1,

250.0f, 250.0f - вершина номер 2 и

50.0f, 250.0f - вершина номер 3. Заметьте, что вершины определены в порядке обхода по-часовой стрелке. Это правило для определения видимых граней модели. Если вершины оказываются повернуты к экрану той гранью, где они следуют против часовой стрелки, то такая грань считается невидимой для зрителя стороной и не отрисовывается !

 
     
 

Теперь можно легко определить вершины для нашего квадрата -

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

 
     
 

Однако даже правильно изменив количество вершин с 3 на 4 и правильно указав это число в строке кода

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )

И указав количество отрисовываемых примитивов в функции Render в строке -

g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

в количестве 2 вместо 1

 
     
  Результатом будет -  
     
  попытка рисования квадрата 1  
     
  А всё дело в том, что D3D-приспособлен понимать только треугольные грани - состоящие из треугольников. Это сделано из-за того, что три вершины образующие треугольную грань всегда находятся в одной плоскости и следовательно так проще обсчитывать прорисовку сложных моделей.  
     
  Значит нам, для создания модели квадрата, состоящего из 2х треугольных граней нужно использовать не 4, а 6 вершин -  
     
 

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff0000ff, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, },

{ 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, },


};

 
     
  попытка рисования квадрата 2  
     
  Важен и порядок, в котором определена вторая тройка вершин. Если они будут определены в другом порядке, то вторая грань (второй треугольник) выведен не будет. Попробуйте изменить порядок второй тройки вершин и убедитесь в этом сами.  
     
  На рисунке также отчетливо видно какая из вершин в какой цвет окрашена, так что будет более понятно где и какая вершина. На первых порах задайте для каждой из вершин свой цвет - тогда легче будет увидеть где нужная вершина.  
     
     
     
     
     
  [содержание] [назад] [страница 3] [далее]  
     
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,0880