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


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

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 2
           
подробнее...

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

megainformatic - Галерея красивых рисованных девушек

megainformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

megainformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

megainformatic - Уроки css - атрибут position

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

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

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

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

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

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

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

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

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

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

Разное

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

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

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

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

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

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

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

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

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

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

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

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

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

megainformatic - megainformatic cms express files + module slider

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

подробнее


Отзывы о проектах Мега Информатик

Добро пожаловать странник интернета !

Вы можете оставить здесь свой отзыв о проекте Мега Информатик или о продуктах мною выпущенных.

Спасибо за внимание !

Некоторые пользователи уже оставили свои отзывы - можно почитать их здесь

подробнее

Что нужно знать для создания сайта ?

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

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

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

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

Знать 5 языков:

- html;

- css;

- php;

- javascript;

- sql для mysql;

Создание сайта обычно включает следующие шаги:

- планирование задач и общей направленности сайта;

- составление технического задания (тз);

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

- верстка шаблона сайта - на чистом html + css или сразу с внедрением в конкретную систему управления сайтом (cms);

- разработка необходимого функционала на html + css + php + javascript + my sql;

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

Общее представление о том, с чего можно начать я уже давал в некоторых своих статьях,
например Пишем свою cms, Web технологии, Уроки php

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

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

Глава 1 - первая страница вашего сайта

<html>

<head>
<title>Моя первая страница</title>
</head>
<body>
Привет! Это текст на моей первой странице.<br><br>

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

</html>

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

Всегда есть <html> и </html> теги, внутри которых заключена вся структура любой страницы любого сайта.

Откройте любой сайт и посмотрите его код в браузере и вы сами убедитесь в этом.

Теги <head> и </head> венчают собой начало и конец заголовочной части страницы сайта.

Всё что описано внутри них - не выводится в видимой части страницы, но влияет на многие особенности отображения этих страниц.

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

И наконец, теги <body> и </body> определяют всю видимую часть страницы сайта, которая будет в том или ином виде показана браузером в области содержимого страницы.

Если эта информация для Вас является новинкой - то советую вам сразу же поэкспериментировать - создать в БЛОКНОТе или другом редакторе текста (например, notepad++), приведенный пример кода, сохранить созданный файл назвав например index.html и попробовать открыть его любым браузером.

Если всё получится - значит Вы сделали свой ПЕРВЫЙ ШАГ в понимании того, как работают сайты.

далее

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

подробнее

       
  Урок 5: Первая композиция в Mod Plug Tracker 1.16. Описывается создание композиции в ModPlug Tracker 1.16  
       
 

На вкладке Patterns происходит вся основная работа по созданию композиций. Ноты вводятся в текущую позицию с клавиатуры. Текущая позиция определяется нотным курсором, пометить новую позицию можно щелчком мыши. Если Вы задали раскладку клавиатуры в стиле IT (см. пункт меню View > Setup > Keyboard > Keyboard preset > Impulse Tracker), то расположение нот будет таким же как в IT (см. урок 6 Ввод нот).

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

 
       
 

Загрузка сэмпла в текущий слот - для этого перейдите на вкладку Samples и нажмите кнопку Import sample - эта кнопка позволит вам открыть один из понимаемых программой форматов сэмплов (обычный wav или многие многие другие форматы, подробнее см. help по MT). Можно также импортировать сэмпл из другой композиции - для этого воспользуйтесь окном структуры композиции (см. предыдущий урок). Откройте узел Instruments Library в этом окне и открывайте последовательно требуемый диск, папки, подпапки и когда дойдете до самих композиций, то они будут помечены в виде зеленых папок. Открыв такую папку Вы получите в нижнем окне список сэмплов данной композиции. Загрузить сэмпл можно простым перетаскиванием в окно сэмпла (черная область) на вкладке Samples.

импортирование (или просто - открытие) существующего сэмпла
 
       
 

Теперь вернемся на вкладку Patterns и попробуем ввести несколько нот. Находясь на этой вкладке Вы можете работать в двух режимах - в режиме проигрывания нот и в режиме записи нот. Переключение режимов осуществляется комбинацией клавиш [Ctrl] + [Space]. (Space - это пробел).

Чтобы записать несколько нот перейдите в режим записи нажав данную комбинацию или нажав мышкой кнопку записи (Record) на вкладке Patterns. Щелкните мышью место в текущем паттерне, в которое Вы хотите записать ноту. Нажмите клавишу с нотой и в текущей позиции появится нота.

 
       
 

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

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

 
       
 

В поле Instrument можно изменить текущий (используемый для проигрывания и записи нот) сэмпл/ инструмент.

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

Всё, что не содержит нот - это паузы (или тишина). Однако если длина сэмпла большая, то он будет звучать, пока не будет встречена следуюшая нота или пока он не закончится (если он не зациклен).

Для видоизменения проигрывания звука, придания ему иной окраски или эффектного звучания применяются различные эффекты. Об эффектах рассказано в уроке 7 . Для ввода эффекта вы переходите в мини-столбец для записи эффектов и вводите идентификатор эффекта (букву или цифру) и его параметры - две последующие шестнадцатиричные цифры. Типы эффектов отличаются для разных форматов, поэтому информация по ним содержится в справочной системе MT - Help > Contents > Getting Started > Effects.

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

 
       
  Для паттернов можно задавать имена. Последовательность воспроизведения паттернов находится над основным окном содержимого паттерна. Для того, чтобы добавить/исключить/переместить паттерн в этой последовательности используйте мышь с левой и правой кнопкой. Можно включать/отключать звучание отдельных каналов - для этого щелкайте мышью по заголовкам каналов (Channel 1 и т.д.).  
       
 

Для воспроизведения композиции используйте кнопки панели инструментов или следующие клавиши - F5 - воспроизведение композиции с текущей позиции останова (F8). F6 - воспроизведение композиции с начала. F7 - воспроизведение текущего паттерна. [Ctrl] + [F7] воспроизведение паттерна с текущей позиции редактирования нот.

MT позволяет работать одновременно с неограниченным числом композиций во всех поддерживаемых форматах. При этом поддерживается авто-импорт при копировании/вставке/замене отдельных фрагментов композиций в разных форматах. Чтобы закрыть текущую композицию выберите ее в окне структуры композиции и дайте команду File > Close. Можете также использовать стандартные кнопки для Windows-окна и все преимущества многооконного интерфейса.

 
       
 

Сохранять композицию также предельно просто - выберите команду File > Save или File Save As. При этом композиция будет сохранена в текущем (или выбранном формате). Можно также легко экспортировать композицию в Wave/MP3/Midi формат - для этого используются соответствующие пункты меню.

 

Это было краткое вступление по основам использования Mod Plug Tracker 1.16. Более подробно о создании композиций рассказано в цикле статей "Теория и практика компьютерной музыки в трэкерах".
 
       
       
       
       
       
  [Предыдущий урок] [Следующий урок] [Все уроки]  
подробнее

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

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

Рассмотрение программирования игр под 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 live chat
Начать беседу
X
 

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



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


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