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


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

megainformatic - Эмулятор игры Ну, Погоди!
        Эмулятор электронной игры Электроника ИМ-02 "Ну, Погоди!", версия 1.10
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки 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 - Меняем иконку приложения

подробнее

Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

По просьбам наших читателей начинаем публикацию новой серии - Иван Денисов и крутые хакеры. Сегодня читайте роман - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА.

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

[далее

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

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

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

Иван расположился в помещении, которое мы именуем офисом, а Степан - гостиной.

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

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

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

Раздался звонок и вслед за Степаном я отправился в офис.

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

- Где же кола ? - спросил он.
- На кухне, Иван Степаныч. Нижний ящик справа.
- Она охлажденная ?
- Да, достаточно охлажденная.
- Принеси. Захвати также 2 стакана.

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

Степан принёс напиток.

Денисов погрузился в поглощение своей порции газировки и дальнейшее составление узоров.

- Иван Степаныч, могу ли я поинтересоваться, чем это Вы заняты ?

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

- Я имел в виду, то что Вы сейчас делаете - это какой-то новый проект ?

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

- Ок. Понял, тогда не буду отвлекать. Но у меня есть к вам вопрос по-другому поводу.

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

Это был Уваров, пришедший с небольшой просьбой.

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

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

Увидев Уварова, Иван спросил:

- Приветствую, Уваров, я вам сколько-то еще должен ?

Уваров приблизился.

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

- Не хотите ли выпить колы ?

- Нет, благодарю.

Петр Уваров прошел мимо кресла и остановился около Ивана, потом произнес:

- Я рискнул прийти просить вас сделать мне одолжение...

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

Иван всегда подавлял Уварова своей наблюдательностью и своим умением рассуждать.

- Никто так не нуждается в займе, как я, - продолжал Петр, - но я пришел не за этим.

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

Тут я не выдержал и вставил:

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

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

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

- Хорошо, попросите её войти, - сказал Иван.

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

- Марианна Малакян, Иван Степанович, - представил её Уваров.

Она улыбнулась, показав белые ровные зубы.

- Мария Малакян, - поправила она.

У неё был грудной голос низкого тона.

- А не Тикин ли Малакян ? - спросил Иван.

- Нет, я не замужем.

- У вас какие-то неприятности ?

- Да, Иван Степанович. Петр говорил, что вы могли бы помочь мне.

- Расскажите мне, в чем дело ?

- Хорошо, Иван Степанович. Это касается моего брата Кочара. Он уехал.

- Уехал ? Извините Мария, но я не занимаюсь поиском людей, моя профессия совсем иного рода.

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

- Ок.

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

- Я в этом уверена.

- Хорошо, мне нужны факты - прошу вас рассказать всё, что знаете, и поподробнее. Приступай, Энди.

Я приготовил свой электронный диктофон, чтобы записать её рассказ.

Эта женщина хорошо владела собой и толково, в нескольких словах передала суть дела.

Она была администратором кафе в районе Берсеневской набережной и там же неподалеку жила.

Её брат, Кочар Малакян, старше её на два года, жил неподалеку от Моховой.

По специальности он был программист высокой квалификации.

Он работал в течение многих лет в одной крупной ИТ-компании.

Он очень любил выпить и поэтому иногда не выходил на работу. А когда начался кризис 2009, его уволили одним из первых.

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

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

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

Мария согласилась с его решением и дала ему денег для покупки билета на самолет.

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

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

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

- Это было позавчера ? - уточнил я.

Уваров достал свой электронный ежедневник и проверил.

- Совершенно верно, в понедельник, двадцатого декабря.

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

- Уваров, сегодня среда, двадцать второе декабря.

- Ну так что же ?

- Это было в понедельник ? - обратился он к Марии.

- Да, Иван Степанович. Конечно в понедельник. Это мой выходной день.

- Так, значит в понедельник, 21 декабря, - прошептал он себе под нос. - Я очень сожалею, Мария Малакян, но не могу вам дать дельный совет. Рекомендую вам обратиться в милицию.

- Я уже обращалась, Иван Степанович. Они ответили мне, что он давно улетел в Армению и, видимо, прихватил с собой и мои деньги.

- А может быть, это так и есть ?

- О нет, Иван Степанович. Я лучше знаю своего брата, чем они. Он никогда бы так не поступил.

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

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

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

- Но где же тогда находится его тело ?

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

- Я в это не верю, Иван Степанович. И кроме того, был же еще один телефонный звонок ...

- Вы ничего не сказали мне о телефонном звонке.

Она улыбнулась и ответила:
- Я просто не успела рассказать вам об этом. Около семи часов вечера кто-то позвонил ему, он был как раз на лестичной клетке и курил, а соседка по квартире слышала его разговор.

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

- У меня нет друзей, - ответил Иван. - Скажите, а сколько у вас имеется денег ?

- О ! У меня сто пятьдесят тысяч рублей и даже немного больше.

- Какую сумму вы согласны потратить ?

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

Иван кивнул в знак согласия.

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

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

[далее]  [содержание]

подробнее

     
  Веселый Буквоежка - игра  
     
 

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

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

 
     
  [содержание] [назад] [страница 4] [далее]  
     
  Введение в 2d-игры - создаем заставку для игры  
     
  Итак, мы создали основу нашей будущей игры. Теперь займемся изучением принципов вывода и использования статичных и анимированных изображений из файлов jpg и tga на примере вывода титульной заставки игры.  
     
  пример вывода титульной заставки игры  
     
 

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

CGameAppLoader

CD3DGameApp

и рассмотрим как применяется класс

CD3D9Sprite для работы со спрайтами и статичными 2d-изображениями.

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

Классы CGameAppLoader, CD3DGameApp объявляются в заголовочном файле Fle.h

Класс CD3D9Sprite полностью реализован в модулях D3DGUI.h и D3DGUI.cpp и представляет класс для использования 2d-изображений и спрайтов в d3d-приложениях и играх, полностью его код Вы найдете в исходном коде, если закажете ПОЛНЫЙ ИСХОДНЫЙ КОД игры Веселый Единственный Буквоежка за 200 рублей.

 
     
 
 
 
     
  Здесь и далее мы рассмотрим код указанных классов только с точки зрения необходимых нам для решения задач данного урока возможностей, если Вы хотите увидеть их ПОЛНЫЙ ИСХОДНЫЙ КОД - закажите его.  
     
  Параллельно мы коснемся основ использования DirectInput8, т. к. он на понадобится для управления нашей игрой.  
     
 

В модуле Fle.h

в самом начале файла после строки -

#include "resource.h" // main symbols

набрать следующий код -

#include <d3d9.h>
#include <d3dx9.h>

#include "D3DGUI.h"
#include "diutil.h"

#include "AdventureGame.h"

#include "d3dfont.h"

описать возможные состояния загрузчика -

// загрузчик


enum LOADINGSTATES{
LOADSTATE_BEGINSTARTLOGO,
LOADSTATE_STARTLOGO,
LOADSTATE_ENDSTARTLOGO,

LOADSTATE_BEGINMENU,
LOADSTATE_MENU,
LOADSTATE_ENDMENU,

LOADSTATE_BEGINADVENTUREINTRO,
LOADSTATE_ADVENTUREINTRO,
LOADSTATE_ENDADVENTUREINTRO,

LOADSTATE_BEGINLOADADVENTUREGAME_LOCTEX,
LOADSTATE_ADVENTUREGAME_LOCTEX,
LOADSTATE_ENDADVENTUREGAME_LOCTEX,

LOADSTATE_BEGINLOADADVENTUREGAME_CREATURE,
LOADSTATE_ADVENTUREGAME_CREATURE,
LOADSTATE_ENDADVENTUREGAME_CREATURE,

LOADSTATE_BEGINLOADADVENTUREGAME_SUBJECTS,
LOADSTATE_ADVENTUREGAME_SUBJECTS,
LOADSTATE_ENDADVENTUREGAME_SUBJECTS,

LOADSTATE_BEGINLOADADVENTUREGAME_SUBJECTS_PLATES,
LOADSTATE_ADVENTUREGAME_SUBJECTS_PLATES,
LOADSTATE_ENDADVENTUREGAME_SUBJECTS_PLATES,

LOADSTATE_BEGINLOADADVENTUREGAME_SUBJECTS_PLATES_LETTERS,
LOADSTATE_ADVENTUREGAME_SUBJECTS_PLATES_LETTERS,
LOADSTATE_ENDADVENTUREGAME_SUBJECTS_PLATES_LETTERS,

LOADSTATE_BEGINLOADADVENTUREGAME,
LOADSTATE_ADVENTUREGAME,
LOADSTATE_ENDADVENTUREGAME

};

и сам загрузчик -

class CGameAppLoader
{
public:
CGameAppLoader();
~CGameAppLoader();
//поля и методы загрузчика

CPtrArray* m_pLoaderTexturesArray;

void Start(CPtrArray* TxArray, LPCTSTR TexFilesPath, LPCTSTR TexFilesListTxt);
void LoadingProcess(CPtrArray* TxArray, LPCTSTR TexFilesPath,
LPD3DXSPRITE pSprite = NULL);
void LoadingResProcess(CPtrArray* TxArray, LPCTSTR TexFilesPath,
LPD3DXSPRITE pSprite);
void LoadingLtProcess(CPtrArray* TxArray, LPCTSTR TexFilesPath,
LPD3DXSPRITE pSprite = NULL);
void End();
void NextLoadStage();


//вывода ротора

float m_fRotorAngle;

void LoadLoaderTextures();
void DrawLoaderScreen();

void RestoreLoaderScreen();
void InvalidateLoaderScreen();
void FreeLoaderTextures();
void AnimateRotor();


void RenderLoaderText();


LPD3D9FONT m_pLoaderFont_2d;
void CreateFont_2d();
void FreeFont_2d();
void RestoreFont_2d();
void InvalidateFont_2d();
void RenderLoaderText_2d();


void Load1GameTexture(CPtrArray* TxArray, LPCTSTR TexFilesPath,
int* CurrentFileIndex, LPD3DXSPRITE pSprite);
void Load1GameTextureRes(CPtrArray* TxArray, LPCTSTR TexFilesPath,
int* CurrentFileIndex, LPD3DXSPRITE pSprite);
void Load1LetterPlate(CPtrArray* TxArray, LPCTSTR TexFilesPath,
int* CurrentFileIndex, LPD3DXSPRITE pSprite);


void OpenGameTexturesListFile(/*CPtrArray* TxArray, */LPCTSTR TexFilesPath,
LPCTSTR TexFilesListTxt);
void CloseGameTexturesListFile();

CStdioFile* m_pTextFile;

//статистика загрузки
int m_iCurrentIndex;
float m_fLoadingProgressStep;
float m_fLoadingProgress;
int m_iFilesNum;
TCHAR m_sTexFileName[MaxPath2];
char m_chTexFileName[MAX_PATH];

//смена загружаемых ресурсов
DWORD m_dwLoaderState;

void Loading();
int CountNumberOfFiles();

float m_fRotateProcessTimeCounter;


};

после строк -

//название приложения
#define GameAppName L"Веселый Буквоежка"

добавить строки -

#define ParamDelimeter ';'

#define GAMEERR_NOINPUT 0x00000006
#define GAMEERR_OUTOFMEMORY 0x00000007


// файл списка текстур загрузчика
#define TexturesPath L"\\Media\\textures\\"
#define LoaderTexFilesPath L"\\Media\\textures\\initial\\"
#define LoaderTexFilesTxt L"\\Media\\textures\\initial\\loader_texlist.txt"

#define LoaderFontFileName L"\\Media\\fonts\\BALTICA.TTF"
#define LoaderFontHeight 18
#define LoaderFontWidth 10
#define LoaderFontRescaleCorrect 1.0f

#define LoaderFont2DFileName L"\\Media\\fonts\\MSSansSerif.tga"
#define LoaderFont2DFileName_CoordData L"\\Media\\fonts\\MSSansSerif.dat"

#define LoaderBackTexIndex 0
#define LoaderRotorTexIndex 1
#define LoaderStatorTexIndex 2

#define RotateProcessTimeLimit 0.01f

#define RotationStep D3DX_PI * 0.1f

#define RotationSpeed 3.0f

//ресурсы стартовой сцены (логотип, заставка, начало)
#define StartupLogoFilesPath L"\\Media\\textures\\startlogo\\"
#define StartupLogoTexFilesTxt L"\\Media\\textures\\startlogo\\start_texlist.txt"

объявляем класс CD3DGameApp -

 

class CD3DGameApp
{

public:

HWND m_hWndMain;

DWORD m_dwScreenWidth; // разрешения для полноэкранных режимов
DWORD m_dwScreenHeight;

float m_fResolutionRescale;

bool m_bIsActive; // активность приложения
bool m_bDisplayReady; // признак инициализации класс устройства отображения

FLOAT fAspectRatio;

BOOL m_bMouseVisible; // видимость указателя мыши

DWORD m_dwAppState; // текущее состояние приложения
DWORD m_dwAppStateAfterLoad; // состояние после завершения экрана
// загрузки

// Объекты Direct3D

LPD3DXSPRITE m_pSprite;

bool m_bShowFPSOn;

bool m_bPaused;

float m_fElapsedTime;


CD3DGameApp();

HRESULT FrameMove();
HRESULT Render();

CGameAppLoader* m_pLoader; //загрузчик игровых ресурсов

public:
void GetStrParam(CString* aCurrentStr,
int *aCurrentCharNum, CString* ParamStr);

void ReadFileParam(const CString* ParamStr,
CString* Name, D3DXVECTOR3* Pos, D3DXVECTOR2* Scale, bool* bAnimParam = NULL,
int* Width = NULL, int* Height = NULL, int* TexOffsetX = NULL,
int* TexOffsetY = NULL, int* FramesPerLine = NULL, float* fMaxFrame = NULL,
float* Delay = NULL);

void LoadGameTextures(CPtrArray* TxArray, LPCTSTR TexFilesPath,
LPCTSTR TexFilesListTxt);

void FreeGameTextures(CPtrArray* TxArray);


void CleanupAndDisplayError(DWORD dwError);

void Cleanup3DEnvironment();

HRESULT InvalidateDisplayObjects();
HRESULT DestroyDisplayObjects();
HRESULT RestoreDisplayObjects();

void CalcResolutionRescale();

//поля и методы стартовой сцены (логотип, название, начало)

CStartLogo* m_pStartLogo;

void LoadStartRes();

//поля и методы меню

CGameMainMenu* m_pGameMenu;

void LoadMenuRes();

//поля и методы игрового режима Приключение

CIntroComics* m_pIntroComics;
void LoadIntroComics();

CAdventure* m_pAdventure;
void LoadAdventure();
void ContinueAdventure();


// Функции ввода
HRESULT CreateInputObjects();
void DestroyInputObjects();
void UpdateInput( UserInput* pUserInput );

// Объекты DirectInput
CInputDeviceManager* m_pInputDeviceManager; // Класс для управления устройствами // // DInput
DIACTIONFORMAT m_diafGame; // Формат действий для геймплея

UserInput m_UserInput; // структура для хранения ввода от пользователя

HRESULT InputAddDeviceCB( CInputDeviceManager::DeviceInfo* pDeviceInfo, const DIDEVICEINSTANCE* pdidi );
static HRESULT CALLBACK StaticInputAddDeviceCB( CInputDeviceManager::DeviceInfo* pDeviceInfo, const DIDEVICEINSTANCE* pdidi, LPVOID pParam );
BOOL ConfigureInputDevicesCB( IUnknown* pUnknown );
static BOOL CALLBACK StaticConfigureInputDevicesCB( IUnknown* pUnknown, VOID* pUserData );


void PlayGameSound(int Index, CPtrArray* SoundsArray);
HRESULT LoadSoundList(CPtrArray* SoundsArray,
LPCTSTR SoundsResourcePath, LPCTSTR SoundFilesList);
void FreeSoundList(CPtrArray* SoundsArray);

HRESULT CreateSoundObjects();
void DestroySoundObjects();

void TestGlobalAppState();

};

__declspec(selectany) CD3DGameApp g_d3dApp;

 
     
  Я намеренно не привожу здесь все комментарии, многое Вам будет понятно исходя из дальнейшего изучения кода. Код приведенный выше мы частично реализуем, остальное при желании Вы найдете в ПОЛНОМ ИСХОДНОМ КОДЕ игры.  
     
 

Чтобы не пугать Вас обилием кода на данной странице отсылаю Вас к ПОЛНОМУ ИСХОДНОМУ КОДУ.

Здесь мы рассмотрим как выводится 2d-изображение на экран.

 
     
 

Вот фрагмент кода из метода void CStartLogo::DrawIntroStoryBackScreen()

LPD3D9SPRITE spr = GetElement(IntroStoryScreen); //получаем объект спрайта по его // //индексу IntroStoryScreen

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

//это выполняется здесь

D3DXVECTOR2 pt1;
Vector2Screen(&D3DXVECTOR2(
m_fIntroScr_x1,
IntroScr_y1),
&pt1);

pt1.x *= spr->m_fResolutionRescale; //пересчетный коэффициент применяется для // // // //корректного вывода
pt1.y *= spr->m_fResolutionRescale;

// выводим 2d-изображение в указанную позицию x, y, z; x и y - пиксельные координаты, // но представленные типом float; с данным масштабом xScale, yScale и с данной // // // // полупрозрачностью alpha

spr->Draw2(pt1.x, pt1.y, spr->m_Position.z,
spr->m_Scale.x * spr->m_fResolutionRescale,
spr->m_Scale.y * spr->m_fResolutionRescale,
spr->Alpha );

 
     
  Но прежде нужно загрузить нужное изображение из файла, это делается следующим образом -  
     
 

LPD3D9SPRITE Sprite;

HRESULT hr;

Sprite = new CD3D9Sprite(); // создаем объект для работы со спрайтами и 2d-// // // // // // изображениями

hr = Sprite->LoadTextureFromFile(
DXUTGetD3D9Device(), pSprite, TexFileFullName ); // выполняем загрузку изображения из // // файла в объект, pSprite - это LPD3DXSPRITE - интерфейс для работы спрайтов, // // // // TexFileFullName - полное имя файла (включая путь) загружаемого изображения

 
     
 

После использования - при освобождении ресурсов приложения нужно освободить ресурсы, выделенные для использования объектов, это делается так -

SAFE_DELETE(Sprite);

 
     
 

Возникает вопрос: как загружать и использовать не одно - несколько изображений. Для этого Вам нужно создать текстовый файл, содержащий список загружаемых изображений и их параметров, а для работы со списком объектов использовать например класс CPtrArray.

Всё это есть в ПОЛНОМ ИСХОДНОМ КОДЕ игры.

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

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

Это также показано в ПОЛНОМ ИСХОДНОМ КОДЕ игры.

 
     
     
     
     
  [содержание] [назад] [страница 4] [далее]  
     
подробнее

     
 
megainformatic cms e-mailer

Система Управления Вашим Сайтом - megainformatic cms e-mailer

Представляет из себя 4 в 1 - megainformatic cms, e-pro, e-shop и e-mailer. Эти системы позволяют вам управлять сайтом, партнерскими заказами, магазином и организацией e-mail рассылок.

 

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

 
     
 

Система Управления Вашим сайтом - megainformatic cms e-mailer

Эта система объединяет в себе 4 подсистемы:
- megainformatic cms - систему управления сайтом;
- e-pro - систему управления заказами в магазинах партнеров;
- e-shop - систему управления ващим собственным интернет-магазином;
- e-mailer - систему автоматизированных рассылок по базе пользова-
телей.
Таким образом, приобретая данную систему Вы получаете 4 в 1.
Это позволит вам создать собственный сайт - интернет-магазин,
активно использовать партнерские системы и выполнять рассылки
новостей вашему кругу пользователей.

 
     
     
 

Система megainformatic cms e-mailer имеет следующие особенности:

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

- полностью открытый исходный код на php;

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

- удобное управление контентом;

- доступный для понимания код;

- наличие встроенных модулей административной части, контента, поиска, карты сайта, случайной новости, даты и времени, e-pro, e-shop, e-mailer, сменные шаблоны, выпадающее меню;

- наличие подключаемых платежных систем WebMoney, Робокасса, Единый Кошелек, Квитанция сбербанка, QIWI, указание реквизитов для других систем, например yandex.деньги.

 
     
 

Система megainformatic cms e-mailer решает следующие задачи:

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

- добавить к сайту товары и систему оплаты и обработки заказов, превратив его в интернет-магазин - e-shop;

- осуществлять работу с партнерскими системами других магазинов обрабатывая заказы с помощью системы e-pro;

- организовывать автоматизированное пополнение списков рассылки и выполнять автоматизированные рассылки новостей по базе пользователей вашего сайта;

 
     
 

Если Вы всё еще сомневаетесь остановить ли свой выбор на megainformatic cms e-mailer, тогда рекомендую вам начать с бесплатного решения - megainformatic cms free - это уникальная система, работающая без баз данных и состоящая всего из ОДНОГО!!! исполнимого файла.

Т. е. всё что вам потребуется - это скопировать этот файл на свой хостинг, добавить необходимый контент (в соответствии с описанием системы) и Вы получите бесплатный работающий сайт !!!

 
     
  Добро пожаловать в мир электронных знаний !!!  
     
подробнее

Вакансии



megainformatic web job предложения о работе, фриланс заказы

megainformatic.ru/webjob

В нашей команде

- сценарист;

- контент-менеджер;

- менеджер проектов;

- дизайнер - photoshop, corel draw, 3ds max;

- программист c++, delphi, андроид;

- веб программист php/js/html/css/mysql;

- музыкант;

- звукорежиссер;

- генератор вредных идей и советов;

Если Вы хотите стать частью нашей команды или присоединиться к разработке одного из проектов - пишите нам !

Это можно сделать несколькими способами:

Оставьте своё сообщение через форму Комментария ниже.

Напишите по одному из наших Контактов.

Можно также оставить сообщение через форму Возник вопрос Нажми.



Нам будут интересны следующие кандидаты:

Кто Вы и чем хотите заниматься ?

Какой у вас опыт ?

Примеры реализованных вами проектов ?



Что Вы получите работая с нами.

Возможность разрабатывать и продвигать новые, интересные и перспективные проекты.

Пополните свои знания и опыт, расширите кругозор.

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

Вы серьезны, целеустремленны, полны сил и готовы к покорению новых вершин ? Тогда нам по пути !



Предложить задачу, проект



megainformatic web job предложения о работе, фриланс заказы

megainformatic.ru/webjob

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

Или оставить сообщение через форму комментариев ниже.

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

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

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



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

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

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



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


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