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


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

megainformatic - Теория и практика 3d игр - Важные замечания
        [статьи] [как создать игру ну, погоди!] [к содержанию] [scene2game] [do
подробнее...

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

megainformatic - статьи Тимонина Андрея - уроки из области веб программирования, создания казуальных игр

megainformatic - статья Тимонина Андрея - Обеспечиваем доступ к объекту из любой точки программы. Singleton

megainformatic - статья Тимонина Андрея - Хронология работы программы. Создаем Лог

megainformatic - статья Тимонина Андрея - Поиск файлов. Получаем список файлов каталога.

megainformatic - статья Тимонина Андрея - Исключения. Создаем класс обработки исключений.

megainformatic - статья Тимонина Андрея - States. Создаем менеджер состояний игры.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 1. Создаем страничку регистрации на сайте.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 2. Создаем обработчик, и заносим информацию о пользователе в Б.Д.

megainformatic - статья Тимонина Андрея - Таймер. Выводим время игры.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем первое приложение.

megainformatic - Что нужно знать для создания сайта ? float - использование в css - стилях

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

megainformatic - Что нужно знать для создания сайта ? ASC II Коды символов

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

megainformatic - Модуль галерей для любой cms

megainformatic - Портфолио выполненных проектов сайтов и приложений

megainformatic - Мои Музыкальные Миры - страница 2

megainformatic - megainformatic cms rs

megainformatic - модуль Падающий снег

megainformatic - проект Open Shop

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

подробнее

     
  [Все уроки 3ds max] [Галерея моделей] [назад] [далее]  
     
  Подготовка модели к использованию скелетной анимации  
     
 

Подготовка модели к использованию скелетной анимации включает следующие шаги -

1) создание и текстурирование модели

2) создание скелета для данной модели

3) привязка скелета к текстурированному мешу (Skinned Mesh) при помощи модификатора Skin и настройка степени влияния костей на вершины модели

4) создание анимации

5) экспорт модели в нужный формат (в нашем случае - X).

 
Если Вы новичок в создании и текстурировании моделей в 3Ds Max, то отправляем Вас изучать базовые уроки посвяшенные 3Ds Max. А пока не вдаваясь в подробности моделирования и текстурирования персонажа можете сразу загрузить себе готовые модель и текстуру - nn (108 Кб). Замечание: все предоставленные модели в формате 3ds max 7.0! Это значит что в более ранних версиях (6, 5 и ниже) они открываться не будут!!!
 
модель Fedja (108 Кб)
 
Откройте модель из 3Ds Max 7 (или выше). Если модель появилась в сцене без текстуры, то это объясняется просто - 3Ds Max сохраняет абсолютные пути к файлам текстур. Значит Вам нужно исправить этот путь, т.к. в Вашей системе он естественно иной.
 
Проблема решается следующим образом - откройте редактор материалов Rendering > Material Editor и в открывшемся окне в группе Blinn Basic Parameters напротив цвета Diffuse нажмите кнопочку M (на рисунке обведено красным кружком!)
 
открытие свойств рассеянного света материала в редакторе материалов 3Ds Max7
[изображение "открытие свойств рассеянного света материала в редакторе материалов 3Ds Max7"]
 
В открывшемся окне свойств диффузного цвета в группе Bitmap parameters нажмите кнопку напротив пункта Bitmap и укажите корректный путь к текстуре в вашей системе -
 
коррекция пути к файлу текстуры
[изображение "коррекция пути к файлу текстуры"]
 
выбор файла текстуры для формирования корректного пути к нему в вашей системе
 
Если после этих манипуляций изображение текстуры так и не появилось на поверхности модели, значит оно просто не отображается или не применено. Исправим это.
 
Снова откройте редактор материалов (см. изображение "коррекция пути к файлу текстуры" выше). В поле Diffuse Color из выпадающего списка выберите название материала orig_fedja
 
переход к свойствам материала orig_fedja
 
Это вернет Вас к окну свойств материала orig_fedja в целом (см. изображение "открытие свойств рассеянного света материала в редакторе материалов 3Ds Max7" ).
 
Нажмите кнопку Show Map in Viewport -
 
отображение материала в окне вида
 
И если это не решило проблему - перетащите материал из своего слота в редакторе материалов на изображение модели в окне вида (Viewport) -
 
применение созданного обновленного материала к модели
 

Эту операцию придется повторить для всех объектов из которых состоит модель.

Все эти манипуляции должны привести к появлению изображения текстуры на поверхности модели. Теперь Вы понимаете как важно использовать для файлов текстур относительные, а не абсолютные пути! Особенно это касается файлов в формате X. О том как скорректировать путь к файлу текстуры в готовом Х файле текстового вида можно прочитать в статье - Погружение в глубины DirectX8, 9

 
Теперь приступим к коррекции модели для целей экспорта в формат X. Выберите все объекты модели в сцене, сгруппируйте их в одну группу Group > Group и выбрав инструмент Select and Move задайте нулевые значения положения модели относително центра мировой системы координат (world coordinate system) - X =0,0; Y = 0,0; Z=0,0
 
расположение модели в центре мировой системы координат
 
Эта особенность является важной, т.к. любые смещения относительно центра будут неизбежно приводить к некорректному расположению модели в игровых сценах - она всегда будет смещена.
 
Коррекция масштаба изображения - пока модель сгруппирована можете сразу же отмасштабировать ее до нужных размеров. Это будет необходимо, т.к. приложение SkinnedMesh рассчитано на другой масштаб модели или придется масштабировать модель уже в коде - программным путем. В нашем случае модель уже не нуждается в масштабировании, т.к. размеры были подогнаны, но для пробы можете все же сделать это.
 
Экспортируйте модель в формат X при помощи любого из экспортеров которые были описаны выше.
 
Проверьте результат экспорта в любой из утилит для просмотра мешей или в приложении SkinnedMesh.
 
Это были предварительные шаги для подготовки Вас и Вашей модели к использованию концепции скелетной анимации.
 
Следующий этап - 2 - это создание скелета для модели.
 
Скелет - это набор вспомогательных моделей образующих иерархию. Скелет состоит из костей (Bones). Кости будут в дальнейшем влиять на положение связанных с ними вершин текстурированной модели (Skinned Mesh).
 
Скелет относится к вспомогательным объектам и поэтому в игровой сцене он будет невидим, поэтому его необходимо расположить внутри модели персонажа. И хотя кости скелета относятся к отрисовываемым (rendered) объектам - их можно выводить на rendering в 3ds max, в игровых сценах и приложениях они отрисовываться не будут! Таким образом скелет в виде видимой модели нужен только на этапе его разработки и создания анимации.
 
В игровом приложении скелет отрисовываться не будет, а будет лишь воздействовать своими матрицами трансформации на трансформацию связанных с ним вершин модели персонажа.
 
Поскольку мы сейчас будем внедрять скелет внутрь тела персонажа нам нужно чтобы он был виден, но и не мешал создавать и/или выбирать отдельные кости. Для этого давайте"заморозим" модель и сделаем "сквозной" вид обзора (See-Through).
 
Выделите модель (или все ее составляющие объекты если Вы ее разгруппировали).
 
Щелкните правой кнопкой по модели и выберите пункт меню Properties, в группе Display Properties установите флажок See-Through. Нажмите ОК. При этом модель (все выделенные объекты) станут полупрозрачного серого цвета.
 
установка "сквозного" вида модели
 
Снова щелкните правой кнопкой и выберите Freeze Selection. Это приведет к "заморозке". Для разморозки используйте Unfreeze. Для восстановления нормального вида убирайте флажок See-Through.
 
Теперь когда модель видна, но недоступна для выбора нам ничто не будет мешать и мы свободно можем создавать скелет и размещать его внутри модели.
 
Выберите пункт меню Character > Bone Tools. Перед вами откроется панель создания костей скелета -
 
панель создания костей скелета
 
Отдельные кости мы будем формировать в разных плоскостях, поэтому Вам нужно будет для их размещения включать соответствующий вид - фронтальный (Front), боковой слева или справа (Left, Right) и т.д.
 
Для этого воспользуйтесь кнопкой Maximize Vieport Toggle в нижнем правом углу окна 3ds max -
 
c последующим выбором окна соответствующей проекции и его максимизацией/минимизацией этой же кнопкой.
 
Создадим кости для левой руки. Выполнять это будем в окне фронтальной проекции (Front viewport - см. рис. выше).
 
Левая рука персонажа будет соответствовать правой стороне на экране (потому что с точки зрения персонажа его левая рука, а с вашей точки зрения она расположена в правой части экрана). Т.е. мысленно поставьте себя спиной к персонажу, тогда поймете о чем я говорю.
 
Нажав кнопку Create Bones и щелкая мышью постройте 4 кости идущие от плеча к кисти как показано на рисунке. В конце щелкните правой кнопкой. Пятая концевая кость носит вспомогательный характер и должна выходить за пределы руки персонажа (как и показано на рисунке). Она будет служить концевой точкой прикрепления Анимационного инструмента инверсной кинематики (IK Solver - HI Solver).
 
 
 
[назад] [далее]
 
     
  [Все уроки 3ds max] [Галерея моделей]  
     
     
     
     
подробнее

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

Ведущий: cj andy;

dj andy 1998 - 2002

ВНИМАНИЕ! При прослушивании композиций после нажатия вами кнопки воспроизведения может возникать небольшая задержка в несколько секунд, связанная с загрузкой файла композиции в Ваш браузер. Поэтому просто наберитесь терпения и немножко подождите. Сразу же после этого Вы услышите музыку :)


  Вступление - Дорогие друзья, Мы начинаем нашу новогоднюю вечеринку 2013. Ура !!! 31 декабря 2012  
     
     
 
 
     
     
     
     
  Композиция фри-стайлинг версия от 6 января 2013  
     
     
 
 
     
     
     
     
  Новогодняя - Новый год стучится в двери, он уже на полпути, в сказку, в чудо все мы верим, вместе нам вперед идти! 31 декабря 2011  
     
     
 
 
     
     
     
     
  kristmas - рождество - 4:02 - 8 января 2001 г - композиция посвященная рождеству (electro house)  
     
     
 
 
     
     
     
     
  Different Reality - Scooter  
     
     
 
 
     
     
     
     
  Стремление (aspiring) - 3:34 - 14 декабря 2012 electro :) Стремление вперед ... А вообще я щас заметил, что aspiring - это же аспирин :))) Таблетка аспирина так сказать :))) Но вообще композиция получилась немного "тяжелая" и "перегруженная", и всё же надеюсь вам она понравится.  
     
     
 
 
     
     
     
     
  Герои наших дискотек - Белый, Марат и Ник из фильма Даже Не думай. Марат встречает Машу на Дискотеке, 2002 г. Веселимся под их музыку !!!  
     
     
 
 
     
     
     
     
  Кшиштоф Радомски, Above the Zenith  
     
     
 
 
     
     
     
     
  Веселая мелодия из м/ф Планета 51, 2009 г.  
     
     
 
 
     
     
     
     
  Марк Вера - Композиция на тему игры Laser Squad  
     
     
 
 
     
     
     
     
  Морозное утро (Frosty morning) - 2:35 - 3-5 февраля 2012  
     
     
 
 
     
     
     
     
  Песенка Сильвера - Лучше быть одноногим, чем быть ... одиноким из м/ф Остров Сокровищ, 1988 г.  
     
     
 
 
     
     
     
     




другие композиции

подробнее

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

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

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

 
     
  [содержание] [назад] [страница 2] [далее]  
     
  Введение в 2d-игры - страница 2 - создание игровой оболочки как у игр от Nevosoft, Alawar и аналогичных  
     
 

Этот простой пример поможет Вам быстрее освоить программирование игр на C++.

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

 
     
  игровая оболочка  
     
 

При закрытии окна нажатием кнопки X в правом верхнем углу приложение завершает работу, а игра так и не будет запущена.

Нажатие кнопок Играть, Купить, Еще игр приводит к каким-либо действиям -

Играть - запускается игра;

Купить - отображается веб-страничка покупки;

Еще игр - отображается веб-страничка других игровых проектов;

 
     
 

Для того, чтобы реализовать такую оболочку потребуется следующее:

1) изображение основного экрана оболочки и 3 изображения кнопок Играть, Купить, Еще игр;

2) файлы в формате html, представляющие страницы Купить и Еще игр;

3) потребуется написать код, реализующий описанные возможности:

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

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

 
     
  Начнём !  
     
  Скачайте указанные ниже 4 изображения на свой компьютер, внутри папки созданного MFC-проекта создайте подпапку Media\shell_window и разместите данные изображения внутри созданной папки  
     
  базовая картинка оболочки  
     
  кнопка играть  
     
  кнопка купить  
     
  кнопка еще игр  
     
 

Теперь переходим к разработке собственно оболочки - в окне Solution Explorer нашего проекта выбираем вкладку Resource View и последовательно открываем узлы

Fle2 > Fle2.rc > Dialog > IDD_FLE2_DIALOG

Пункт IDD_FLE2_DIALOG щелкаем дважды

 
     
  открытие шаблона окна диалога нашего приложения  
     
  При этом в правой части будет открыт редактор Диалоговых окон и шаблон Диалога окна нашего приложения  
     
  редактор шаблонов диалоговых окон  
     
 

Нам нужно внести в шаблон окна следующие изменения:

Убрать кнопки OK и Cancel;

Удалить метку с текстом TODO: Place dialogs controls here

После этого сохранить изменения в шаблон диалога и закрыть его.

 
     
 

Теперь нужно будет написать программный код.

Откройте файлы Fle2Dlg.h и Fle2Dlg.cpp

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

Правда если Вы дали классам окна диалога другие имена, исключив слово Dlg, то тогда Вам нужно открыть заголовочный и cpp файлы, которые содержат описание класса окна диалога Вашего приложения - объект окна диалога производится от класса CDialog -

class CFleDlg : public CDialog

 
     
 

В модуль Fle2Dlg.h добавляем следующий код -

// CFle2Dlg dialog
class CFle2Dlg : public CDialog
{
// Construction
public:
CFle2Dlg(CWnd* pParent = NULL); // standard constructor
~CFle2Dlg(); //определяем деструктор объекта CFleDlg

// Dialog Data
enum { IDD = IDD_FLE_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support


// Implementation
protected:
HICON m_hIcon;

// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()

private:
CImage* pBigImage; //определяем объекты, в которых будут храниться изображения
CImage* pPlayImage; //формирующие внешний вид игровой оболочки
CImage* pBuyImage;
CImage* pOthesImage;

RECT m_rcClientBounds; //размеры рабочей области окна будем хранить здесь
RECT m_rcPlayImage; //аналогично будем хранить размеры изображений
RECT m_rcBuyImage;
RECT m_rcOthesImage;

void InitShell(); //описываем метод инициализации оболочки

bool TargetBtnArea(CPoint* CursorPos, RECT* aBtnArea); //метод попадания указателя мыши в область границ одной из кнопок игровой оболочки

public:
bool bPlayBtnUp; //индикаторы отпускания левой кнопки мыши над данной кнопкой
bool bBuyBtnUp; //игровой оболочки - используются для срабатывания нажатий
bool bOthesBtnUp; //этих кнопок
private:
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);

};

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

#include "stdafx.h"
#include "Fle.h"
#include "FleDlg.h"

#include "openwebpage.h" //подключаем модуль openwebpage.h и .cpp - эти модули выполняют открытие указанной веб-страницы и входят в комплект ПОЛНОГО ИСХОДНОГО КОДА игры ВЕСЕЛЫЙ БУКВОЕЖКА, который Вы можете приобрести всего за 200 рублей

о том, что еще входит в состав комплекта ПОЛНОГО ИСХОДНОГО кода Вы узнаете далее

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

 

#define bi_x 0 //определяем начальные координаты первого из 4х изображений
#define bi_y 0 //которые будут формировать внешний вид нашей игровой оболочки

//определяем имена файлов веб-страниц для кнопок <Еще игр> и <Купить>
#define OthesGamesUrl L"\\WebLinks\\index.htm"
#define BuyGameUrl L"\\WebLinks\\buy_fle.htm"

 


// CFle2Dlg dialog


CFle2Dlg::CFleDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFleDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

pBigImage = NULL; //обнуляем экземпляры объектов класса CImage
pPlayImage = NULL;
//которые мы описали в заголовочном файле
pBuyImage = NULL;
pOthesImage = NULL;

bPlayBtnUp = false; //выставляем индикатор отпускания левой кнопки мыши
bBuyBtnUp = false; //над данной кнопкой игровой оболочки в false
bOthesBtnUp = false;

}

CFle2Dlg::~CFleDlg()
{


delete pBigImage; //при удалении объекта CFleDlg из памяти нужно удалить и эти объекты
delete pPlayImage;
delete pBuyImage;
delete pOthesImage;


}

void CFle2Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CFleDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
// ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()


// CFle2Dlg message handlers

BOOL CFle2Dlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon


InitShell();
//выполняем инициализацию нашей игровой оболочки

return TRUE; // return TRUE unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.

void CFle2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this); // device context for painting //выводим изображения на поверхности окна нашей игровой оболочки

 

pBigImage->Draw(dc, bi_x, bi_y);

pPlayImage->Draw(dc, m_rcPlayImage.left, m_rcPlayImage.top);

pBuyImage->Draw(dc, m_rcBuyImage.left, m_rcBuyImage.top);

pOthesImage->Draw(dc, m_rcOthesImage.left, m_rcOthesImage.top);

CDialog::OnPaint();

}
}

// The system calls this function to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CFleDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}

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

void CFle2Dlg::InitShell()
{

SetCurrentDirectory(AppRootDir);

pBigImage = new CImage();
pBigImage->Load(L"Media\\shell_window\\fle.jpg");

pPlayImage = new CImage();
pPlayImage->Load(L"Media\\shell_window\\fle_play.jpg");

pBuyImage = new CImage();
pBuyImage->Load(L"Media\\shell_window\\fle_buy.jpg");

pOthesImage = new CImage();
pOthesImage->Load(L"Media\\shell_window\\fle_other_games.jpg");

GetClientRect(&m_rcClientBounds); //получаем размеры рабочей области окна

int y = m_rcClientBounds.bottom - pPlayImage->GetHeight(); //координата y кнопки <Играть>
int x = 0;//координата x
m_rcPlayImage.left = x;
m_rcPlayImage.top = y;
m_rcPlayImage.right = x + pPlayImage->GetWidth();
m_rcPlayImage.bottom = y + pPlayImage->GetHeight();


x = x + pPlayImage->GetWidth(); //координата x для кнопки <Купить>
m_rcBuyImage.left = x;
m_rcBuyImage.top = y;
m_rcBuyImage.right = x + pBuyImage->GetWidth();
m_rcBuyImage.bottom = y + pBuyImage->GetHeight();

x = x + pPlayImage->GetWidth(); //координата x для кнопки <Еще игр>
m_rcOthesImage.left = x;
m_rcOthesImage.top = y;
m_rcOthesImage.right = x + pOthesImage->GetWidth();
m_rcOthesImage.bottom = y + pOthesImage->GetHeight();

}

//данный метод проверяет попадание указателя мыши в область указанной параметром aBtnArea кнопки


bool CFle2Dlg::TargetBtnArea(CPoint* CursorPos, RECT* aBtnArea)
{
if ( CursorPos->x >= aBtnArea->left &&
CursorPos->x <= aBtnArea->right &&
CursorPos->y >= aBtnArea->top &&
CursorPos->y <= aBtnArea->bottom )
return true;
else
return false;
}

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

void CFle2Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{

CPoint pt = point;

bPlayBtnUp = TargetBtnArea(&pt, &m_rcPlayImage);
bBuyBtnUp = TargetBtnArea(&pt, &m_rcBuyImage);
bOthesBtnUp = TargetBtnArea(&pt, &m_rcOthesImage);

 

if ( bPlayBtnUp | bBuyBtnUp | bOthesBtnUp )
{
if ( bBuyBtnUp )
OpenSite(m_hWnd, BuyGameUrl);

if ( bOthesBtnUp )
OpenSite(m_hWnd, OthesGamesUrl);

if ( bPlayBtnUp )
{
EndDialog(IDOK);
StartD3DApp();
}
}

CDialog::OnLButtonUp(nFlags, point);
}

 


 
     
 

Несколько Важных нюансов:

1) Чтобы указанный код правильно работал нужно включить файлы openwebpage.h и openwebpage.cpp в состав Вашего проекта -

в окне Solution Explorer щелкаем правой кнопкой мыши пункт с названием проекта Fle2 и выбираем Add > New Filter

 
     
  включить файлы openwebpage.h и openwebpage.cpp в состав Вашего проекта  
     
 

Созданную группу именуем common, щелкаем по названию правой кнопкой мыши и выбираем Add > Existing Item, указываем на файлы openwebpage.h и openwebpage.cpp

Для этого удобнее в папке с проектом создать подпапку common и поместить оба эти файла туда.

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

В окне Solution Explorer выбираем пункт с названием нашего проекта - Fle2

выбираем пункты главного меню Project > Properties и в открывшемся окне настроек свойств выбранного проекта (не случайно я указал вначале выбрать Fle2 иначе откроются совсем другие свойства) выбираем пункт

Configuration Properties > General

а в окне справа в поле Output Directory указываем нужную нам подпапку для размещения exe-файла

 
     
  в окне справа в поле Output Directory указываем нужную нам подпапку для размещения exe-файла  
     
  На показанном рисунке настройка выполнена для конфигурации Debug, эту же настройку нужно сделать для конфигурации Release. И не забывайте сохранить изменения в проект - File > Save All либо используя аналогичную кнопку на панели инструментов.  
     
 

3) Откройте файл stdafx.h и добавьте в его конец строку кода -

#include <atlimage.h>

 
     
 

4) Откройте файл Fle2.h (если Ваш проект назывался не Fle2, а например, MyProj, то данный файл будет называться MyProj.h)

добавьте в его конец строки

__declspec(selectany) TCHAR AppRootDir[MAX_PATH] = L""; //рабочая папка приложения
__declspec(selectany) DWORD AppRootDirSize = MAX_PATH;

5) Откройте окно настроек проекта - нужно сначала выбрать в окне Solution Explorer пункт с названием проекта, а затем главное меню - Projects > Properties и

Configuration Properties > C++ > General

в поле Additional Include Directories

добавьте ссылку на папку common, размещенную внутри папки проекта -

common; Аналогичную настройку нужно выполнить для конфигурации Release.

 
     
  добавьте ссылку на папку common, размещенную внутри папки проекта  
     
 

6) При написании кода приведенного выше обратите внимание на имя класса, которое Вы используете

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

 
     
 

7) Метод

void CFle2Dlg::OnLButtonUp(UINT nFlags, CPoint point)

нужно сформировать в форме обработчика события WM_LBUTTONUP для класса CFle2Dlg -

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

Далее В окне Solution Explorer выбираем вкладку Class View, в списке классов находим CFle2Dlg, щелкаем правой кнопкой мыши и выбираем пункт Properties, с правого края откроется новое окно, в котором нужно нажать кнопку Messages, в списке найти событие WM_LBUTTONUP и сформировать для него обработчик выбрав пункт <Add> OnLButtonUp

 
     
  В окне Solution Explorer выбираем вкладку Class View, в списке классов находим CFle2Dlg, щелкаем правой кнопкой мыши и выбираем пункт Properties, с правого края откроется новое окно, в котором нужно нажать кнопку Messages, в списке найти событие WM_LBUTTONUP и сформировать для него обработчик выбрав пункт <Add> OnLButtonUp  
     
  Теперь осталось вставить в обработчик тот самый код, который мы закомментировали.  
     
  8) При компиляции возникнет ошибка из-за отсутствия реализации функции StartD3DApp(); - просто закомментируйте эту строку кода, т. к. мы реализуем эту функцию в дальнейшем - она будет запускать игру.  
     
 

9) Для правильного функционирования кнопок <Купить> и <Еще игр> внутри папки Fle, где создается exe-файл, нужно создать подпапку WebLinks и разместить в ней два файла -

index.htm

buy_fle.htm

 
     
 

Пробуем выполнить сборку - [F7], а exe-файл ищем теперь уже внутри созданной подпапки !!!

При запуске запускается созданная нами оболочка. При нажатии мышью кнопки <Играть> приложение просто завершает работу - мы пока не реализовали запуск игры - будем это делать в дальнейшем. При нажатии на кнопки <Купить> и <Еще игр> должны открываться соответствующие веб-странички из папки WebLinks.

Работа по созданию игровой оболочки завершена! В следующем нашем уроке Мы реализуем в первом приближении работу кнопки <Играть> - будет запускаться начальное простейшее DirectX-приложение. В последующих уроках будем постепенно наращивать возможности создаваемой игры.

 
     
     
     
  Если у Вас еще остались неразрешенные вопросы - обращайтесь на наш Форум, либо на e-mail автора.  
     
     
     
     
  [содержание] [назад] [страница 2] [далее]  
     
подробнее

     
  Макет дизайна своего сайта - Создаем Сайт Своими Руками - СССР  
     
  [назад]  
     
  мы рассмотрим процесс создания макета нашего сайта (2 этап), этап 1 я надеюсь Вы уже для себя определили, т. е. какие специфичные задачи будет решать ваш сайт. Мы же решим общие задачи, которые может и должен решать любой сайт и на примере этой работы вы, надеюсь, научитесь решать и специфичные задачи, необходимые именно для вашего специфичного сайта !  
     
 

Страница любого сайта имеет следующие важные блоки -

header, menu, content, footer

или по русски -

заголовок, меню, контент, подвал

 
     
  Мы с Вами сейчас создадим вот такой макет  
     
  макет вашего сайта  
     
  Сделать такой макет можно например в программе Abode Photoshop. Более подробно о том, как создать этот макет и готовый макет в формате psd Вы можете получить заказав продукт CMS megainformatic Simplex.  
     
 
 
     
 

Также Вы узнаете о том как,

- сверстать созданный макет;

- установить его на CMS megainformatic;

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

- проверить работу сайта, выгрузить и установить сайт на хостинг;

- заняться его продвижением и сопровождением.

 
     
  Вы также можете почитать другие статьи, посвященные Созданию Сайта Своими Руками - СССР.  
     
     
     
     
     
     
     

Вакансии



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 Размещение баннерной рекламы у нас
Время загрузки: 1,9031