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


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

megainformatic - Уроки Photoshop
             
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

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

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

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

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

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

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

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

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

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

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

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

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

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

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

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 5

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 6

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 1

megainformatic - Веселый Буквоежка - онлайн комикс - страница 2

megainformatic - Веселый Буквоежка - онлайн комикс - страница 3

megainformatic - Веселый Буквоежка - онлайн комикс - страница 4

megainformatic - Веселый Буквоежка - онлайн комикс - страница 5

megainformatic - Веселый Буквоежка - онлайн комикс - страница 6

megainformatic - Веселый Буквоежка - онлайн комикс - страница 7

megainformatic - Веселый Буквоежка - онлайн комикс - страница 8

подробнее

     
 

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

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

 
     
 

Продолжаем цикл статей на тему программирования игр.

Здесь Мы рассмотрим кратко что нужно для начала работы и как начать освоение этой обширной темы.

 
     
 

Вам потребуется:

- среда разработки Microsoft Visual Studio 2005 или выше;

- DirectX SDK Aug 2008 или выше;

- хотя бы минимальные знания английского языка, а еще лучше запастить программой словарем-переводчиком для англо-русского/русско-английского перевода - X-translator, Lingvo или что-то еще.

 
     
  Когда всё это будет у Вас под рукой и полностью установлено и готово к работе можно приступать.  
     
  Самый первый шаг.  
     
 

Сначала нужно установить MSVS (Microsoft Visual Studio), затем DirectX SDK.

В этому случае в процессе установки DX SDK будет подготовлена среда для программирования под DirectX и многие настройки, особенно отладку DX-приложений Вам не нужно будет перенастраивать вручную.

 
     
  Несколько уроков на тему создания игр  
     
 

Сегодня наша цель:

- познакомиться с основами работы в среде MSVS;

- создать первое простейшее игровое приложение;

- попробовать модифицировать его для проверки и отладки;

 
     
 

Запускаем MSVS

Выбираем пункт меню File > Open > Project Solution

Находим папку с примерами из DirectX SDK -

C:\DXSDK_Aug2008\Samples

На Вашем компьютере этот путь может быть другим, если Вы при установке DirectX SDK задали другой диск и другую папку, так что вначале уточните, куда Вы установили DX SDK !

 
     
 

А мы откроем самый первый пример -

C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice

 
     
  И попробуем его изучить  
     
  После открытия этого проекта в окне Solution Explorer дважды щелкаем файл CreateDevice.cpp, чтобы воочию увидеть этот магический cpp код.  
     
  Найдите функцию wWinMain  
     
  находим функцию wWinMain  
     
  можете щелкнуть данное изображение, чтобы увидеть его в полномасштабном варианте, затем вернитесь на данную страницу  
     
  Рассмотрим этот код по-порядку  
     
  INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT )
{
// Register the window class
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
L"D3D Tutorial", NULL
};
RegisterClassEx( &wc );

// Create the application's window
HWND hWnd = CreateWindow( L"D3D Tutorial", L"D3D Tutorial 01: CreateDevice",
WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
NULL, NULL, wc.hInstance, NULL );

// Initialize Direct3D
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
// Show the window
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );

// Enter the message loop
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}

UnregisterClass( L"D3D Tutorial", wc.hInstance );
return 0;
}

 
     
 

Данная функция wWinMain - является стартовой функцией работы любого игрового приложения, судя по названию Win - сокращение от Windows и Main - главная.

Префикс w означает, что данная функция использует строковые параметры вида WideChar, т. е. двубайтовые строки.

 
     
  Когда Вы будете запускать данное приложение операционная система в первую очередь передаст управление этой функции - wWinMain.  
     
  Я думал писать игры сложно, можете сказать Вы, а оказывается всё начинается с какой-то маленькой функции wWinMain.  
     
  Могу ответить Вам одно - всё в этом мире начинается с малого, мой друг !  
     
 

Что же происходит внутри этой функции ?

// Register the window class - регистрируем класс окна приложения
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
L"D3D Tutorial", NULL
};
RegisterClassEx( &wc );

 
     
 

Вы наверное уже догадались, что строки начинающиеся с символа двойной наклонной черты

//

представляют из себя комментарии и исполнимым кодом не являются.

Всё остальное представляет действительно исполнимый код, который в процессе компиляции превращается в исполнимый машинный код, доступный для обработки центральным процессором CPU Вашего и любого другого ПК.

 
     
 

Мы создаем переменную wc с типом WNDCLASSEX и заносим в неё значения

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

 

 
     
 

WNDCLASSEX wc;


SecureZeroMemory(&wc, sizeof(wc));


wc.cbSize = sizeof( WNDCLASSEX );
wc.style = CS_CLASSDC;
wc.lpfnWndProc = MsgProc;
wc.cbClsExtra = 0L;
wc.cbWndExtra = 0L;
wc.hInstance = GetModuleHandle( NULL );
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = NULL;
wc.lpszClassName = L"D3D Tutorial";
wc.lpszMenuName = NULL;

 
     
 

Объявляем переменную wc с типом WNDCLASSEX

SecureZeroMemory - очищаем все поля данной переменной значением ноль.

Далее присваиваем каждому полю данной записи соответствующее значение -

размер записи - получаем при помощи функции sizeof

стиль

оконная процедура MsgProc

Обработчик экземпляра приложения wc.hInstance получаем при помощи функции GetModuleHandle

wc.lpszClassName = L"D3D Tutorial"; - задаем имя класса приложения.

Все остальные поля выставляются либо в 0, либо в NULL.

 
     
  0 в случае числовых полей, NULL - в случае полей-указателей.  
     
  RegisterClassEx - выполняем регистрацию класса с указанными параметрами в системе.  
     
  CreateWindow - создаем окно приложения  
     
 

if( SUCCEEDED( InitD3D( hWnd ) ) ) - инициализируем приложение и если всё прошло без ошибок -

ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
- показываем окно на экране, выполняем его перерисовку.

 
     
 

// Enter the message loop
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}

запускаем бесконечный цикл приема и обработки сообщений системы,

в случае если функция GetMessage вернет FALSE цикл будет остановлен и выполнена строка следующая за строкой цикла -

UnregisterClass( L"D3D Tutorial", wc.hInstance );
return 0;
- выполняется освобождение класса приложения в системе, выполняется возврат из функции со значением кода возврата равным 0

 
     
  [далее]  
     
     
     
подробнее

Веселый Буквоежка - онлайн комикс - страница 23

представляем Веселый Буквоежка - онлайн комикс.

Включая и то, куда нам идти ?

Веселый Буквоежка - онлайн комикс - страница 23

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1]  [страница 2]  [страница 3]  [страница 4]  [страница 5]  [страница 6]  [страница 7]  [страница 8]  [страница 9]  [страница 10]  [страница 11]  [страница 12]  [страница 13]  [страница 14]  [страница 15]  [страница 16]  [страница 17]  [страница 18]  [страница 19]  [страница 20]  [страница 21]  [страница 22]  [страница 23] 

подробнее

Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE

[к содержанию]

В предыдущей статье - Что нужно знать для создания сайта ? я очень кратко ознакомил Вас с тем, что нужно знать, о создании сайтов, если Вам интересна и близка эта тема.

Код html-страницы, который Я вам там привёл может работать правильно не всегда и не в любом браузере.

Почему ?

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


=========================================
I.) Первая проблема - это определение типа html документа, по описанному DOCTYPE.


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

На сайте htmlbook.ru приводится следующее определение для DOCTYPE

Элемент предназначен для указания типа текущего документа — DTD (document type definition, описание типа документа). Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, поскольку HTML существует в нескольких версиях, кроме того, имеется XHTML (EXtensible HyperText Markup Language, расширенный язык разметки гипертекста), похожий на HTML, но различающийся с ним по синтаксису. Чтобы браузер «не путался» и понимал, согласно какому стандарту отображать веб-страницу и необходимо в первой строке кода задавать .

Существует несколько видов , они различаются в зависимости от версии языка, на которого ориентированы. В табл. 1. приведены основные типы документов с их описанием.

Табл. 1. Допустимые DTD
DOCTYPE Описание
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Строгий синтаксис HTML.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Переходный синтаксис HTML.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> В HTML-документе применяются фреймы.
HTML 5
<!DOCTYPE html> Для всех документов.
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Строгий синтаксис XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Переходный синтаксис XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> Документ написан на XHTML и содержит фреймы.
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам.


Так что как видим, для своего сайта Вы можете выбрать из таблицы любой подходящий DOCTYPE и указать его.

Язык html постоянно развивается, расширяясь и дополняясь его разработчиками. Именно поэтому так необходимо использовать DOCTYPE.

Кроме того, после задания DOCTYPE вам нужно обязательно соблюдать некоторые правила, в записи тегов. Так, если Вы задали для DOCTYPE обычный тип html-документа, то и теги Вы продолжаете записывать так обычно, а вот если Вы задали тип как XHTML, тогда запись тегов может несколько измениться, например символ <br>, вам нужно будет записывать как <br/>

Помимо основных, существуют также некоторые переходные типы DOCTYPE, например <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Они также были приведены в таблице указанной выше.

Полный перечень и более подробное описание всех возможных вариантов DOCTYPE и их применения можно почерпнуть здесь - http://www.w3.org/TR/html401/struct/global.html

Правда указанная там информация представлена на английском.


=========================================
II.) Вторая проблема - использованная в html-документе кодировка и тег, её задающий.


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

Всё что Вам нужно знать для того, чтобы не возникало проблем с кодировками это 2 вещи:

1) Сразу после открывающего тега <head> укажите такую строчку -
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">

При этом сам файл страницы должен быть также сохранен в этой же кодировке - windows-1251

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

Бывают конечно и другие ситуации (см. Проблема с кодировками при отображении страниц сайта ), но чаще всего причина именно в этом.

В заключение данной статьи давайте перепишем код нашей первой странички в новом виде -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<title>Моя первая страница</title>
</head>
<body>
Привет! Это текст на моей первой странице.<br><br>

Ура !!! Работает !!!<br><br>
</body>

</html>

При этом сохраняем файл index.html в кодировке windows-1251 (если сохраняете из блокнота, то указываете её как ANSI)

далее

[к содержанию]

подробнее


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

Эта тема, которую мы будем рассматривать достаточно опасна, и может привести вас на плохой путь. Поэтому будьте осторожны !

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

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

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

Если Вы боитесь за свои права и свободы то советую не читать дальше и остановиться на этом.

[СОДЕРЖАНИЕ]  [далее]

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

Сначала немного теории.

IP адрес имеет каждый инфообъект в сети - и пользователь, и сервер, и сайт.

Поэтому используя IP адрес инфообъекта можно однозначно определить его местонахождение.

Достаточно например набрать адрес сайта reg.ru, ввести исследуемый IP адрес и Вы получите по нему исчерпывающую информацию.

Однако существует масса способов, с помощью которых достаточно просто подменить свой реальный IP другим.

Самый простой способ подмены - один к одному

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

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

Если Вы думаете что это сложно - то поищите информацию на тему proxy server. :)))

[СОДЕРЖАНИЕ]  [далее]

     
  Игра: Дорога в Город (freeware)  
  игра Дорога в Город  
  Жанр: автоаркада  
     
  Версия: 18.10.2006  
     
  игра Дорога в Город - заставка  
  игра Дорога в Город - игровой процесс  
  игра Дорога в Город - таблица рекордов  
     
 

Новое время, идет продвижение энергоресурса нового поколения КОР, Вы - в центре событий, выступаете в роли Андреаса - сборщика и распространителя КОРа. Вам придется собирать ресурс - АЙТ, накапливать средства и выполнять различные задания: скоростная езда с лавированием в потоке машин со сбором айта на время, перевозка сотрудников лабораторий, поиск секретных лабораторий противника, покупка технологий и многое другое.

Основа игры - движение на автомобиле. (На скриншоте желтая машина - игрок). Но не все так просто - нужно следить за уровнем повреждений и запасом топлива, вовремя ремонтироваться и заправляться. На все это нужны средства - КОР-КРЕДИТЫ. АЙТ, который Вы будете собирать и сдавать и принесет Вам искомые средства. Будте осторожны на дороге, не сбивайте пешеходов!

 
     
 

В игре 10 игровых миссий. Суть игры: двигайтесь вперед быстро или медленно, лавируйте уворачиваясь от препятствий или вовремя останавливайтесь - возможна резкая остановка (клавиша - СТРЕЛКА ВВЕРХ).

Действие развивается по нарастающей - сначала простой сбор АЙТА и сдача в лаборатории с получением КОР-КРЕДИТОВ, затем скоростной сбор АЙТА (на время), перевозка сотрудников (СОИСКАТЕЛЕЙ) и многое другое. По ходу игры Ваш автомобиль постепенно улучшает свои характеристики в плане сбора АЙТА и увеличения максимальной скорости движения...

 
     
 

Дистрибутив игры содержит встроенную справочную систему, где можно подробно узнать о том, как играть. В комплекте несколько музыкальных саундтреков. Для проигрывания имеется аудио-плеер (автор -Оливье Лаписку). Музыкальные файлы можно также прослушивать через известный аудиоплеер WinAmp (он поддерживает формат IT)..

Для запуска плеера используется специальный пункт меню программы: Options > RunModPlug

 
     
  СИСТЕМНЫЕ ТРЕБОВАНИЯ: DirectX 7 и выше; Pentium 100MHz и выше; 32Mb RAM; 2Mb Video RAM; DirectX-совместимая звуковая карта, 21 Mb пространства на жестком диске.  
     
 

скачать игру - самораспаковывающийся архив 8,7 Mb

Скачиваний : 4

скачать игру - самораспаковывающийся архив 8,7 Mb

пароль к архиву: bj4r-vn35-guhj-gv85-4jfg

 
     
 
Скачиваний : 3
открытый полный исходный код игры - архив WinRar 3.3 - 237Kb
 
     
  игра Дорога в Город - описание игры  
  игра Дорога в Город - Mod Plug Player  
     
 

Открытый проект Дорога в Город (Road To City)

===============================================
Открытый код игры Дорога В Город (версия 18.10.2006)
===============================================
автор: Синицин А.С.
дата публикации: 30.03.2007

Введение

Вашему вниманию предлагается исходный код игры на Delphi 7 с использованием библиотек DelphiX 1.07 (by Jaro Benes) или UnDelphiX под Delphi 7. О том где взять эти библиотеки см. ниже!

Игра создавалась около года, это первый игровой (пока некоммерческий) проект автора.
Для компиляции требуется библиотека DelphiX или UnDelphiX c кодом, адаптированным для среды Delphi7.
Исходный код игры также написан в Delphi7, в других версиях не тестировалось,
так что будьте готовы к модификациям кода, если используете другую версию
Delphi.

Особенности примера

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

- пример создания 2D-игры на Delphi в DelphiX для DirectX7;

- игра содержит 10 уровней.

- показано движение спрайтов, анимация, скроллинг экрана (сверху-вниз), проверка столкновений для эффекта аварий, сбора ресурсов, остановки возле зданий;

- воспроизведение звуков; для музыки используется внешний плеер ModPlug Player;

- при помощи инструментов редактирования DelphiX можно посмотреть графическую реализацию графики и анимации - содержимое файлов *.dxg;

- если Вы только начинаете изучение DelphiX, то пример послужит Вам хорошим подспорьем как реальный пример игры и того, как реализуется многоуровневость, учет и вывод игровых параметров (ресурсы, очки и т.п.).

Планы развития проекта:

- Создание редактора карт;

- Разумное поведение других авто на дороге;

- Миди-музыка;

- Реализация начальной заставки, игрового меню;

- Развитие игры;

- Учет времени shareware-версии.

 
     
 

Путеводитель по исходному коду

Основной код приложения реализован в классе TMainForm, остальные типы - производные от TImageSprite и служат для управления игровыми спрайтами - в игре они статичные и анимированные. Тип TGamePaused служит для вывода картинки "Game Paused" во время паузы в игре (по F3); Тип TScrollBackground представляет прокручиваемый фон (трава). Дорога выводится динамически. Класс игрока - TPlayerSprite.

Для лучшего понимания работы приложения Road2City необходимо представлять порядок вызова методов класса TMainForm. Он следующий:

{методы design time} - при помещении новых компонентов DelphiX на форму приложения добавляется соотвествующий код (автоматически). Однако для нормальной работы компонентов во время runtime необходимо правильно их настроить. Главный компонент вашего приложения, занимающий всю площадь формы - это TDXDraw. Он отвечает за отрисовку графики и инкапсулирует соотвествующие методы DirectX 7. Что значит инкапсулирует? Это значит, что в его составе есть соотвествующие описания методов, а мы их вызываем и используем для своих целей. Некоторые из них вызываются автоматически за счет компонентной природы (TDXDraw происходит от TComponent).

Для любой игры на DelphiX Вам потребуются следующие компоненты на форме -

TDXDraw, TDXTimer, TDXSpriteEngine, TDXImageList, TDXInput, TDXSound, TDXWaveList и , возможно, некоторые другие (которые Вы найдете в обновленных библиотеках DelphiX).

Ядром библиотеки DelphiX является DirectX, поэтому особо не удивляйтесь величию DelphiX. Он только служит оболочкой, описывающей обращение к методам DirectX, а также выполняет некоторые дополнительные (но весьма рутинные) операции типа создания списка изображений, его загрузки, вывода спрайтов.

TDXTimer - используется для периодического вызова определенных методов, главным образом метода TDXDraw.Flip без которого просто ничего не появится на экране. TDXDraw.Flip вызывает показ сформированного в буферной памяти кадра игры в предоставленной ему области (окне приложения или на всем экране - в полноэкранном режиме). Установите необходимый интервал времени (свойство Interval), лучше просто - 0 (самый быстрый интервал !)

TDXSpriteEngine - отвечает за анимацию, т.е. последовательный вызов метода Move для каждого из принадлежащих ему спрайтов. Свойство TDXSpriteEngine.DXDraw должно содержать ссылку на компонент TDXDraw, иначе не будет анимации!

TDXImageList - загрузка списка изображений, их отрисовка. Для свойства DXDraw также укажите ссылку на TDXDraw иначе не будет отрисовки или даже ошибки будут!!

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

TDXSound, TDXWaveList - используются для вывода звуков. TDXSound - интерфейс IDirectSound7, а TDXWaveList, то же, что и TDXImageList, но для списка звуков. Следовательно свойство TDXImageList.DXSound должно содержать ссылку на TDXSound.

{методы runtime} - рассмотрим что происходит при исполнении нашего приложения.

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

После того, как форма успешно создана/уничтожена происходит дальнейшая работа/завершение работы приложения. Обратите внимание! Я не случайно указал эти методы в паре Создание/Разрушение. Всегда создавая новый объект сразу же прописывайте и соответствующий код разрушения (Destroy, к-ый вызывается ч/з Free). Большинство ошибок начинающих писателей игр связано именно с тем, что забываем создать/уничтожить требуемые объекты!!!

Итак, если приложение все-таки заработало, что происходит дальше? Т.к. у нас на форме установлен TDXTimer, то дальше всё основывается на периодически вызываемых методах внутри метода TDXTimer.OnTimer

Загляните внутрь него и сами всё увидите!!!

Ладно, вообщем в кратце этого достаточно. Остальное я думаю, сможете постигнуть сами! Если Вы настоящие писатели игр или желаете стать таковыми. В этом Вам помогут всевозможные Help'ы по DelphiX и желательно раздобыть по DirectX SDK!!!, исходники и много много терпения и упорства!

 
     
 

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

http://www.torry.ru/pages.php?id=169

по этим ссылкам вы найдете стартовые странички, с которых можно скачать последние версии компонентов DelphiX и UnDelphiX.

 
     
 

Некоторые замечания по поводу работы с DelphiX (и UnDelphiX, далее просто DelphiX, подразумевая все последние обновления и модификации).

Когда Вы начнете работу с примером и создание собственного проекта у Вас, естественно будут возникать различные вопросы. Я надеюсь, что упорства Вам не занимать, иначе браться за создание собственной игры лучше и не стоит.

Однако вот Вам первое полезное замечание - Если Вы хотите изменить содержимое одного из файлов данных с графикой или звуками - *.dxg или *.dxw поступайте следующим образом:

- откройте форму вашего приложения и найдите соответствующий компонент, используемый для работы со списком изображений или списком звуков - DXImageList или DXSoundList;

- щелкните по нему правой кнопкой мыши и выберите Open для открытия файла данных, найдите и откройте требуемый файл;

- произведите необходимые изменения файла - т.е. загрузку/удаление новых пунктов/файлов в список;

- сохраните изменения в файл правым щелчком по компоненту DXImageList или DXSoundList на форме и выбором Save, указав требуемые имя и путь в соответствующем окне диалога;

- закройте проект вашего приложения БЕЗ СОХРАНЕНИЯ ИЗМЕНЕНИЙ!!! Это очень важно! В противном случае будут наблюдаться некие негативные последствия: рост объема исполнимого файла и "торможение" среды Delphi при работе с проектом.

Почему?

Потому что, если сделать это, то файл данных остается внутри соответствующего компонента - DXImageList или DXSoundList и тем самым увеличивает объем исполнимого файла, кроме того "затормаживается работа" среды Delphi при открытии такого проекта, что будет вызывать у Вас искреннее удивление!

Вместо этого сохраняйте содержимое измененного файла *.dxg или *.dxw правым щелчком по компоненту DXImageList или DXSoundList и выбором Save, а измененный проект закрывайте БЕЗ ИЗМЕНЕНИЙ!!! (т.е. не сохраняя).

Таким образом, Вы оставите компонент пустым, это не будет приводить к указанным выше последствиям (росту исполнимого файла и "торможению" Delphi при открытии проекта).

Обновленные версии DelphiX к тому же содержат специальные инструменты (DXGEdit, DXWEdit) для изменения содержимого файлов *.dxg или *.dxw, поэтому также можете использовать и их!

Загрузка файлов данных *.dxg или *.dxw в соответствующие компоненты будет производиться Вами на стадии runtime (т.е. во время нормальной работы приложения). Как это делается показано в исходном коде!

Желаю Вам приятной работы по освоению DelphiX !!!

 
     
 

Как работать с исходным кодом?
===============================================

Внимание!!! Здесь описано как использовать исходный код игры с библиотеками
UnDelphiX и DelphiX 1.07a (by Jaro Benes).

Для использования кода и нормальной компиляции необходима установка
одной из этих библиотек!!!

Содержание -

Как заставить код работать под DelphiX (by Jaro Benes).
Как заставить код работать под UnDelphiX;


***********************************************
Как заставить код работать под DelphiX (by Jaro Benes).
===============================================

- установить библиотеку;

- в опциях среды Delphi указать путь к DelphiX\Source:
Tools -> Environment Options -> Library -> Library path -> ... -> используя диалог найти Delphix\Source ->
Add
Теперь в проекте ссылку на DelphiX\Source можно не указывать.

- открыть проект Road2City.dpr
попробовать откомпилировать.

> Если сообщения об отсутствии *.dcu, то
добавить в путь поиска проекта ссылку на Source DelphiX

> Сообщение об отсутствии DirectDraw.dcu
в разделе interface секции uses вместо DirectDraw задать DirectX

uses
..., DirectX;


компилируем.


Как заставить код работать под UnDelphiX;
===============================================

Установить библиотеку -

пример установки UnDelphiX:

запустить соответствующий вашей версии Delphi файл с расширением dpk -
например для Delphi 7 это файл (из папки Source) - DelphiX_for7.dpk

нажать кнопки Compile, затем Install

сохранить изменения в проект.

в пути поиска используемого проекта или среды Delphi добавить ссылки на папку Source
с кодом DelphiX -
Project > Options > Directories/Conditionals > ... > ... Add > [DelphiXpath]\Source > OK
, где [DelphiXpath] - путь к папке, куда вы скопировали библиотеку DelphiX

библиотека установлена!

=================================================

Теперь как работать с исходным кодом проекта Road2City :


- Запускаем файл проекта - двойным щелчком по Road2City.dpr

получаем сообщение об ошибке -
Error reading SpriteEngine.Items: Property Items does not exist.
Ignore the error and continue? ...

Если мы произведем отмену, то после компиляции во время запуска
будем получать сообщение об ошибке или форма приложения не будет
создана во время открытия проекта.

Метод устранения - нажимаем кнопочку Ignore и ничего страшного не произойдет!


------------------------------
Замечания:

22/03/2007
Как настроить среду Delphi, чтобы при использовании
комбинации Ctrl + LMouseButton (команда Find Declaration контекстного меню редактора кода)
осуществлялся переход на описания методов и типов, по которым производился щелчек?

30/03/2007

ответ:
Если на названии какого-либо типа или модуля не срабатывает команда Find Declaration,
то в этом модуле имеются ошибки (Errors), предупреждения (Warnings).

 
     
megainformatic live chat
Начать беседу
X
 

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



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


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