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


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

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало
KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало
подробнее...

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

megainformatic - Как создать игру - Веселый Единственный Буквоежка - выводим заставку

megainformatic - Как создать игру - Веселый Единственный Буквоежка - игровое меню

megainformatic - Как создать игру - Веселый Единственный Буквоежка - движение и анимация героя

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

megainformatic - Примеры моих работ

megainformatic - Музыкальные темы

megainformatic - Уроки Photoshop - Чудеса

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Онлайн Обучение, Репетитор

megainformatic - Уроки Photoshop - Рисуем и Анимируем

megainformatic - Уроки Photoshop - Рисуем и Анимируем - Урок 1 - Старт

megainformatic - Уроки Photoshop - Рисуем и Анимируем на AllSoft.ru

megainformatic - DirectX 9c - Изучаем пример MultAnimation

megainformatic - megainformatic cms Система Управления Контентом

megainformatic - Темы для WordPress

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Макет дизайна Вашего сайта

скачать megainformatic cms

megainformatic - Итоги 2010 года

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - как создать инсталлятор для собственной cms

megainformatic - Новости - страница 2

Нововведения в megainformatic cms

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

Уроки Верстки

Система автоматизированной е-майл рассылки

Система автоматизированной е-майл рассылки

megainformatic - Выгрузка файла на сайт

megainformatic - выпадающее меню на html и css

megainformatic - Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Часто Задаваемые Вопросы

Продукты

Проблемы с кодировками при отображении страниц

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

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

webinformatic: Музыкальная страничка трэкера

megainformatic - Создание музыки и звука

webinformatic: Создание музыки и звука: урок 2

megainformatic - Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

megainformatic - Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

megainformatic - Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

megainformatic - Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

megainformatic - Создание музыки в Impulse Tracker 2.14 Первая мелодия

megainformatic - Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

megainformatic - Создание музыки и звука: теория и практика создания трэкерской музыки

megainformatic - Инструкция по оплате услуг средствами WebMoney

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

подробнее


Модуль слайдера (slider)

megainformatic cms express files + модуль slider
Предлагаем вашему вниманию сайт под ключ на базе системы
megainformatic cms express files + модуль слайдера уже встроенный и подключенный.


Сайт разворачивается в течение 10 минут путём простого копирования файлов на ваш хостинг.
Не использует базы данных my sql.

Пример работы системы можно увидеть здесь - http://megainformatic.ru/varve/webprojects/modules/module_slider

В состав комплекта входит:

- система megainformatic cms express files;
- 4 шаблона сайта;
- подключенный модуль slider + 37 примеров статичных и анимированных баннеров;
- документация по интеграции и использованию слайдера;

Приобрести комплект megainformatic cms express files + модуль slider


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

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

Все данные описываются во внешнем файле данных, а скорость по-умолчанию настроена на 3 секунды.

Для баннеров можно описывать как внешние, так и внутренние ссылки. Все ссылки с баннеров имеют дополнительный параметр banner, что позволяет Вам однозначно определить, что посетитель перешел на данную страницу Вашего сайта по клику с баннера. Это чётко отслеживается в модуле посещаемости вашего сайта. Если у вас еще нет своего модуля для учета посещаемости то, можете обратить внимание на продукт - megainformatic cms stat kit

Принцип работы слайдера

Для показа собственных баннеров в слайдере используйте файл данных в папке модулей, в подпапке slider, в подпапке data. Все баннеры описываются в таком виде:

m_cms_epro.jpg;95;megainformatic cms e-pro;Робот - помощник по обработке заказов;

т. е. image filename; pageid; title; description;

где image filename - имя файла баннера;
pageid - id страницы либо можно указать внешнюю ссылку;
title и description - просто текстовые пояснения к показываемому баннеру.

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

1) В модуле index.php вашего сайта, либо в модуле, который вызывается до закрытия тега </head> вам нужно подключить заголовочные файлы модуля слайдера следующей командой

<?php include_once "имя_папки_модулей/имя_папки_модуля_слайдера/slider_includes.php"; ?>

2) В нужном месте шаблона сайта нужно вывести слайдер, например используя такой код -

<div id="gl_slider" style="text-align: center;">
<div id="gl_slider_container"><?php include_once "имя_папки_модулей/имя_папки_модуля_слайдера/slider.php"; ?></div>
</div>


Пример готово подключенного слайдера Вы найдёте внутри дистрибутива данного продукта megainformatic cms express files + модуль слайдера, либо может посмотреть демо здесь - http://megainformatic.ru/varve/webprojects/modules/module_slider

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

подробнее

     
  Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)  
     
  модель коммандного центраСкачать готовую модель вы можете кликнув по картинке.  
     
  Этот объемистый урок расскажет Вам как научиться создавать нечто подобное: всем известно, что вышла игра StarCraft 2 компании Blizzard. Об этой игре ходят легенды. Но не дожидаясь когда вам удастся засесть за игру, а также для того, чтобы пополнить свои навыки и умения попробуем вообразить себя "крутым дизайнером" (прямо как из Blizzard) и попробовать создать модель и текстуру для коммандного центра из StarCraft 2.  
     
 

Часть 3

Следующая часть нашего урока - это создание стойки (support). Всего их будет 4. Однако для создания достаточно и одной. Остальные мы получим путем создания копий созданной стойки операцией клонирования.

 
     
  Как можно заметить готовая стойка (которую Вы вскоре создадите) включает два элемента в основе которых лежит примитив цилиндр.  
     
  готовая стойка для Коммандного Центра  
     
  Поэтому - создадим цилиндр. Радиус 0,5 единиц, Высота 0,1, Количество сегментов по высоте - 1, в основании (cap) - 1, количество сторон (Sides) - 8;  
     
 

Размеры даны в относительных единицах (в качестве них могут быть метры, дюймы или другие допустимые единицы - в зависимости от того какая система единиц измерения у Вас установлена - Customize > Units Setup). Количество сегментов (сторон) следует выбирать опытным путем исходя из того, как Вы будете далее видоизменять созданный примитив.

В нашем случае стойка должна иметь 8-ми гранную форму и 4 выступающих ножки. Исходя из этого мы и выбрали количество сторон примитива равным 8.

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

 
     
  будущая стойка - а пока - сплюснутый цилиндр  
     
  Щелчком правой кнопки мыши в окне стека модификаиций преобразуем объект в editable mesh. Используя технологию выдавливаний, которую Вы уже применяли при создании основания Коммандного Центра, формируем основу стойки -  
     
   
     
   
     
   
     
  На рисунках выше показано как последовательно нужно производить выдавливания со скосами (Bevel) для придания нужной формы.  
     
  Следующий этап - выдавливание 4 маленьких ножек и формирование держателя к которому будет крепиться второй видоизмененный цилиндр опоры. Тут будет одна маленькая особенность - дело в том, что опоры должны располагаться относительно основания коммандного центра повернутыми относительно своего первоночального положения на 23,5 градуса. Вам нужно путем выбора инструмента Select And Rotate повернуть заготовку будущей опоры на этот угол относительно оси Z.  
     
  Выберите весь объект в целом (editable mesh) в стеке модификаций и поверните на нужный угол.  
     
   
     
  Теперь, прежде чем выдавливать ножки, нужно сформировать в верхней части стойки грань. Мы выполним это путем надреза -  
     
   
     
  Сначала выберите в стеке модификаций пункт Edge или Face. Чтобы легче было выполнять надрез (создание нового ребра на поверхности грани или полигона) на панели инструментов включите 3-х мерное выравнивание. Нажмите кнопку Cut в группе Edit Geometry окна параметров editable poly. Обратите внимание в каком месте нужно выполнять надрезы, иначе держатель получится в неверном положении.  
     
   
     
  Аналогично выполните второй надрез. После этого отожмите кнопки Cut и Snaps Toggle (3-х мерную привязку).  
     
  Теперь дело за малым - выдавить держатель и 4 ножки -  
     
   
     
   
     
   
     
  На какое примерно расстояние выполнять сдвиг грани для формирования держателя? Можете ориентироваться на готовую модель опоры или подогнать по месту позднее.  
     
   
     
   
     
  Теперь создаем второй цилиндр - он будет играть роль промежуточного звена в прикреплении опоры к основанию Коммандного центра -  
     
   
     
  Для создания можете использовать следующие предварительные размеры - Radius = 0,2 Height = 0,4 Height segments = 1 Cap segments = 1 Sides = 8  
     
  Теперь Вам нужно выполнить 2 вращения - на 90 градусов по оси Y и на 45 по оси Z и разместить цилиндр в нужном месте опоры.  
     
   
     
   
     
   
     
   
     
   
     
  После проделанных манипуляций мы получим цилиндр лежащий на держателе ребром -  
     
   
     
  Казалось бы, достаточно повернуть его вокруг своей оси на нужный угол (-23,5 градуса) и уложить точно на держатель.  
     
   
     
  Но не тут то было. Все наши попытки привести к правильному повороту не приводят к оному. Почему? Да потому что мы повернули локальную систему координат относительно глобальной. Решением является выбор локальной системы координат объекта, относительно которой получится сделать задуманное -  
     
   
     
  Теперь остается только подобрать нужные размеры, преобразовать цилиндр в editable mesh и выполнить выдавливание нужной формы.  
     
  Думаю с этим Вы справитесь самостоятельно.  
     
  Теперь остается только сгруппировать или связать два элемента формирующие единую опору, чтобы они не "рассыпались" при дальнейших манипуляциях. Лучше конечно использовать связывание (Link), т.к. оно поддерживается форматом X.  
     
  Для выполнения связывания выберите связываемый объект (звено опоры), используя инструмент Select And Link протащите курсор к родительскому (корневому) объекту - опоре.  
     
   
     
  Связывание завершено. Теперь при перемещениях опоры звено опоры двигается совместно. О связывании подробно рассказывалось в уроке посвященном 3D-анимации .  
     
  Теперь Вам остается разместить опору в нужном месте основания базы -  
     
   
     
  Теперь если выполнять перемещения или вращения с нажатой клавишей [Shift] можно создать копии опор и разместить их в нужных местах. Только имейте в виду, что для клонирования нужно выбрать и опору и звено!  
     
   
     
   
     
   
     
  Корректируем положение созданной опопы, а после выделяем все элементы обоих полученных опор и с нажатой клавишей [Shift] поворачиваем на 90 градусов по оси Z в глобальной (view или world) системе координат.  
     
   
     
  [назад] [далее мы создадим элементы крыши]  
     
подробнее

     
 
megainformatic cms admin

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin

Для входа на сайт используйте логин: admin и пароль: admin

megainformatic cms admin - это простое, быстрое и очень компактное решение для создания первого вашего сайта. Данная версия использует базы данных my sql. Система достаточно компакта и проста в установке.

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

В комплект входят 5 готовых шаблонов, и набор модулей для административной части сайта:

- модуль входа в административную часть сайта, разделение пользователей по ролям;
- модуль профилей пользователей;
- модуль панели управления (+меню);
- модуль добавления/редактирования страниц сайта;

 

Заказать megainformatic cms admin

 
     
 

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

Представляем вам - megainformatic cms admin

Она проста, компактна и надежна в использовании.

Это -

 
     
 

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin

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

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

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

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

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

- может использоваться как самостоятельная система для управления сайтом, так и в полном составе megainformatic cms той версии которую вы используете или планируете использовать:

megainformatic cms express

megainformatic cms

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

 
     
 

 

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

Имея дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг. Создайте посредством phpMyAdmin базу данных и разверните базу данных сайта в соответствии с инструкцией.

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

 
     
     
 

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

megainformatic cms e-pro

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

     
 
Урок 5 Построение классов игровых объектов и других необходимых классов
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 1] [далее] [к содержанию]
 

На протяжении предыдущих 4 уроков мы рассмотрели как строится базовый каркас D3D-приложения, узнали некоторые детали разработки игры.

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

 

Начнём с того, что спросим себя: для чего вообще нужны игровые объекты?

Исходя из концепции ООП (объектно-ориентированного программирования) любую прикладную задачу можно сформулировать таким образом, чтобы использовать классы объектов и методы взаимодействия их между собой.

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

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

 

Если объекты достаточно просты и не используют методы, то их можно представить в виде простых переменных или структур.

Какие типы объектов бывают?

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

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

Этот процесс является итеративным. Хорошие и проработанные объекты создаются постепенно, по мере совершенствования и улучшения кода игры. Это всё тесно связано с хорошими правилами и хорошим стилем программирования.

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

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

 

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

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

 

Вот пример описания класса объекта игрока взятый из исходного кода игры проекта "Нечто: Необъяснимое".

TPlayerHero = class(TAnimGameCreature)
private
//FAction: TCharActions;
//FAnimationEnded: Boolean;


procedure DoAnimateProc(TimeLapsed: Single; hr: HResult);

//function GetTerrainHigh(x, z: Single): Single;
protected

procedure SetAnimationParam(Value: Integer); override;

function DoRender: HResult; override;
function DoFrameMove: HResult; override;
//function DoFrameMove2(TimeLapsed: Single): HResult; override;

function DoInitDeviceObjects(pd3dDevice: IDirect3DDevice8): HResult; override;
function DoRestoreDeviceObjects: HResult; override;
function DoInvalidateDeviceObjects: HResult; override;
function DoDeleteDeviceObjects: HResult; override;

public

constructor Create;
destructor Destroy; override;


end;

 
Как видим данный класс производится от некоторого базового класса - TAnimGameCreature и имеет целый ряд методов, связанных в основном с использованием анимированной 3D-модели персонажа. Внутренние особенности класса - его свойства реализованы внутри TAnimGameCreature. Посмотрим его описание -
 
TAnimGameCreature = class(TD3D_GDOListItem)
private
FAction: Integer;
FDoAnimate: TAnimateProc;

protected

procedure SetAnimationParam(Value: Integer); virtual;

function DoRender: HResult; override;
function DoFrameMove: HResult; override;

function DoInitDeviceObjects(pd3dDevice: IDirect3DDevice8): HResult; override;
function DoRestoreDeviceObjects: HResult; override;
function DoInvalidateDeviceObjects: HResult; override;
function DoDeleteDeviceObjects: HResult; override;

public

Character: TAnimatedMesh;

Pos, Orient: TD3DXVector3;
YAxisAngle: Single;
Delay: Single; //длительность воспроизведения анимации
IdleDelay: Single; //длительность бездействия

CurrentAnimDelay: Single; //временная задержка для воспроизведения текущей анимации
IdleAnimDelay: Single; //временная задержка анимации бездействия

GameScene: TD3D_GDOListItem;

constructor Create;
destructor Destroy; override;

function Animate(TimeLapsed: Single): HResult;

property Action: Integer read FAction write SetAnimationParam;
property DoAnimate: TAnimateProc read FDoAnimate write FDoAnimate;
end;

 

Как видим данный класс происходит от класса TD3D_GDOListItem. Такое наследование связано с тем, что данный объект будет являться элементом списка графических объектов TD3D_GDOList. Помимо этого вы видите ряд полей и свойств описанных в данном классе.

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

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

 
Если взять исходный код игры "Ну, Погоди!", то здесь Вы обнаружите полное отсутствие самостоятельных классов игровых объектов. Игра достаточно проста, поэтому всё, что нужно в качестве игровых объектов удалось описать лишь структурами данных определенных типов. Использования классов производных от TObject или каких-то других не потребовалось.
 

В игре "Ну, Погоди!" свойства и необходимые данные игрока представлены внутри самого класса игрового приложения.

Так например,

WolfPos: TTraysNum; //положение волка

определяет текущее положение волка из возможных 4х (см. описание TTraysNum)

GameScore, ShowedGameScore: Integer; //

определяет текущий и отображаемый счет игры

ShtrafGameScore: Single; //счет штрафных очков

показывает количество штрафов, три штрафных очка приводят к завершению игры - проигрышу

Аналогично игровой объект яйцо - также представлен в виде полей класса приложения -

Trays: TEggPos; //позиция яиц на лотке
TraysSet: set of TTraysNum; //номера лотков с которых могут катиться яйца
TraysIndex: TTraysIndex; //индексы номеров лотков
//используются в генераторе новых яиц

 
CreatedEggsNum: Integer; //количество созданных яиц

NewEggTimeCounter: Single; //счетчик появления нового яйца на лотке
NewEggTimeLimit: Single; //предел времени по прошествии которого
//будет создано новое яйцо на лотке

MoveEggTimeCounter, MoveEggTimeLimit: Single; //счетчик и предел
//времени для очередного шага продвижения яиц по лоткам

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

Если вспомнить мой опыт в этой области, то я в своё время начинал изучать Delphi5 в 2002 году, пытаясь создать логическую игру Логика цвета. Естественно, что ни о каком DirectX речи не шло. Это была простая игра-окно с рядом кнопочек. Нужно было угадывать цвета которые задумал компьютер, при этом он давал небольшие логические подсказки на каждом шаге.

Чуть позднее, когда опыт программирования был мной приобретен и усвоены несколько книг по программированию, я перешел к проекту игры "Дорога в Город". Это было уже в 2003. Толчком к освоению DelphiX и созданию игры "Дорога В город" послужила попытка устроиться в одну небольшую фирму, занимавшуюся разработкой компьютерных игр. Моих знаний конечно же оказалось для этого недостаточно, кроме того, требовалось знание все-таки C++ и DirectX, а не Delphi. Однако такой опыт и требования предъявленные при этом послужили мне своеобразной планкой, к которой я стремился. Прошло некоторое время и игра была воплощена, а я уже стал подумывать над созданием 3D-игр. Так появилась библиотека Delphi DirectX 8.1. Конечно основой этой библиотеки послужили работы Алексея Баркового по конверсии кода и примеров из DirectX SDK на C++ в Delphi (http://www.clootie.ru)

Но Алексей Барковой написал именно SDK для Delphi. В его интересы не входила практическая сторона - попытка создания при помощи этого SDK полноценной игры. Для этого не хватало некоторых исходников, кроме того, не было самого главного - примера игры, который можно было бы переделать на Delphi и который послужил бы основой для создания полноценной игры.

У меня под рукой оказалась Microsoft DirectX SDK 8.1 и там был как раз пример игры Donuts3D. Я поставил перед собой задачу реализовать эту игру на Delphi 7, и эта задача удалась. При этом появилось несколько новых исходников, которые и сформировали библиотеку Delphi DirectX 8.1. Дело пошло дальше и появились проекты "Нечто: Необъяснимое" и "Ну, Погоди!".

 
Чтобы лучше понять и усвоить то, что было извлечено из опыта создания игры (проект "Нечто: Необъяснимое", кстати еще пока не завершен, находится в стадии разработки), я приступил к написанию этих уроков.
 
Советую и Вам, если Вы всерьез решились научиться создавать собственные игры и перевести это дело в дальнейшем в разряд Вашей основной или параллельной работы, вести для себя своеобразные дневники разработки, небольшие уроки и статьи. С одной стороны это позволяет лучше уяснить изучаемый материал, а с другой - это послужит хорошим материалом для тех, кто еще только учится писать свои игры, делает в этом свои первые шаги и не обладает таким опытом, который есть у Вас.
 

Итак, это было небольшое отступление от основной темы нашего урока.

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

 
Теперь мы переходим к практической части нашего урока. В рамках неё мы рассмотрим реализацию реальных игровых классов для использования в проекте "Нечто: Необъяснимое. Нить накала". Будет показано как реализованы 2 микро-игры в мини-игре "в плену желаний" для главы 7.
 
"В плену желаний" - 8,55 Mb-готовый проект CoD (8,55 Mb)
 
Код будет основан на исходном коде игры проекта "Нечто: Необъяснимое". Приложение будет работать в обычном режиме за исключением того, что после выбора пункта меню [новая игра] будет выводится не экран выбора глав, а сразу же титульный экран данной мини-игры.
 

Для использования кнопок меню [начать] и [закончить] и вывода их в нажатом состоянии подойдет класс TD3DImage2D описанный в модуле D3DGUI.pas (его Вы найдете в исходном коде игры "Ну, Погоди!").

Для рассчета относительных координат и масштабных коэффициентов вывода изображений методом TD3DImage2D.DrawScaled воспользуйтесь следующими правилами

относительные координаты экрана x = -1..1, y = 1..3

для разрешения экрана 1024х768

текстура кнопки 512х512, ее пиксельные координаты (относительно левого верхнего угла экрана) -

497, 268

масштабный коэффициент длины (x)

экран 1024/2 = 512 - это масштабный коэффициент 0.5 для длины экрана

[отношение длины к ширине] = 1024 : 768 = 1,33333333...

масштабные коэффициенты вывода текстуры 512х512 -

x_scale = 0.5*1.333333 = 0.66

y_scale = 0.5*1.333333 = 0.66

Относительные координаты вывода -

x, y = -0.02, 1.70

рассчет координат осуществляется исходя из следующих соображений

512, 384 - центр экрана (0, 0)

x = (497-512)/512 = -0.029296875

y = (268+384)/384 = 1.6979166666

 

Удобство относительных координат состоит в том, что они не зависят от разрешения экрана. Попробуйте выполнить те же рассчеты для разрешения 800х600 и получите те же масштабные коэффициенты и те же относительные координаты.

Важно также обратить внимание на то, что для анимированных объектов ТЕКСТУРА ОБЯЗАТЕЛЬНО ДОЛЖНА БЫТЬ КВАДРАТНОЙ, т.е. - 32х32, 64х64, 128х128, 256х256, 512х512, 768х768б 1024х1024, 2048х2048 иначе при выводе анимации будут возникать сдвиги картинки!

Для неанимированных изображений можно использовать и не квадратные изображения текстур, как например title.jpg - это если посмотреть в ресурсы проекта (Media\Textures\captivity) картинка размером 1024х768

 

Я не буду здесь приводить исходный код, Вы можете просто скачать

готовый проект (CoD) (8,55 Mb) или исходный код примера (GameClasses) (1,3 Mb)

[downloads:13]
 

готовый проект (CoD) (8,55 Mb) представляет из себя базовую оболочку игры "Нечто: Необъяснимое" с реализованной мини-игрой "в плену желаний".

исходный код примера (GameClasses)

[downloads:13] предназначен для сборки с использованием библиотеки delphi directx 8.1 включенную в исходный код игры "Ну, Погоди!". Содержит демонстрацию вывода титульной заставки, экранного меню (обработка пунктов меню [начать] и [закончить], игрового курсора

 

Вопросы которые предстоит решить читателю:

Как сделать вывод курсора и пунктов выбранных меню с прозрачным фоном, как это имеет место в готовом проекте (CoD)?

При выходе из полноэкранного режима нажатием [закончить] происходит ошибка, как ее устранить?

 

Если Вы правильно ответите на поставленные вопросы, значит можно считать, что урок Вами усвоен и можно переходить к следующему.

 
[назад] [страница 1] [далее] [к содержанию]
 
Если Вы затрудняетесь с ответом, то можете посмотреть их - ответы на поставленные вопросы
 
     
     
     
     

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

Приключения Кости Коробкина - С новым годом - интерактивный комикс
Костя Коробкин -
С новым годом
(kk hny)
Костя :- Эта история произошла со мной под новый год. Что-то может показаться вам выдумкой или даже фантастикой, но я Вас уверяю - это было на самом деле !

Новогодние приключения Кости Коробкина. Авторские музыкальные темы. Костя Коробкин встречает новый год. Что может приключиться под новый год, когда самые заветные желания исполняются ?

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

Системные требования:

Windows 98SE/2000/Me/XP/DirectX9c /P3 1000 МHz / 128 Mb RAM / 32 Mb Video / около 100 Mb свободного места на жестком диске/DirectX-совместимая звуковая карта/ клавиатура, мышь

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


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





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

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

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

Системные требования:

Windows 98SE/2000/Me/XP/DirectX9c /P3 1000 МHz / 128 Mb RAM / 32 Mb Video / около 100 Mb свободного места на жестком диске/DirectX-совместимая звуковая карта/ клавиатура, мышь

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

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





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

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



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


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