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


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

megainformatic - Как создать игру ? - Программируем сами - пример CreateDevice страница 3
         
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
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 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

megainformatic - Основы IDirectMusic8 в среде Delphi6-7

megainformatic - Основы DirectInput8 в среде Delphi 7

megainformatic - Основы DirectSound8 в среде Delphi6-7

megainformatic - Плагин для 3DS MAX из DX9 SDK

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 2

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 3

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 5

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 6

Система управления сайтом - megainformatic cms e-shop

Система управления сайтом - megainformatic cms e-shop

Система управления сайтом - megainformatic cms e-shop

megainformatic - Уроки 3ds max - Введение в 3ds max

megainformatic - ГАЛЕРЕЯ 3D-моделей

megainformatic - СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

megainformatic - Создание макета помещения - этап 2

megainformatic - МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

megainformatic - СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

2.02.2019

fle game generator - эффекты под музыку и без на движке fle game engine

fle game generator - эффекты под музыку и без на движке fle game engine - урок 2 - переходим к более сложным эффектам - вращение 3d объектов



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

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

То есть попробуем научиться создавать визуальный эффект вращающейся 3d модели
на примере 3d куба.

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

Вам наверное было бы интересно знать, как реализовано перемещение 3d кубиков (или 3d сфер,
которые мы создали в предыдущем уроке -
fle game generator - эффекты под музыку и без на движке fle game engine

Скоро Вы это узнаете. А сейчас давайте изучим как вращать куб.

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

fle game generator - 4 вида 3d шариков

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



Поэтому проделаем следующие шаги:

1) вернем снова в сцену летающие кубики вместо летающих сфер.

Как это сделать Вы можете догадаться из предыдущего урока
fle game generator - эффекты под музыку и без на движке fle game engine

fle game generator - 4 вида 3d кубиков и 2d снег

2) Отключим временно отображение 2d визуальных эффектов, чтобы
они нам не мешали.

все что требуется это открыть в MSVS 2005 проект fgg (его можно скачать по ссылке
из предыдущего урока fle game generator - эффекты под музыку и без на движке fle game engine)

найти файл start.cpp и в нём закомментировать строку

//g_Snow.Draw();

Но если делать более изящно, то лучше сделать так:

В класс CD3DGameApp

добавить переменную bool типа

в модуль
start.h

class CD3DGameApp
{
public:

//...

bool			m_b_Show_2d_visual_effects;

а в модуле

start.cpp

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



CD3DGameApp::CD3DGameApp() //в данный метод
{

//...

//после строки
	m_bPauseMusic = true;
//добавляем
	m_b_Show_2d_visual_effects = false;


void CD3DGameApp::LoadParams() //в данный метод
{
//после строки
	g_MusicThemes.m_iPlayMode = m_iMusicPlayMode;
//добавляем
	int i_show_2d_visual_effects = (int)floor(m_Params->GetValue(3));
		if ( i_show_2d_visual_effects < 1 )
			m_b_Show_2d_visual_effects = false;
		else
			m_b_Show_2d_visual_effects = true;
			
			
			


HRESULT CD3DGameApp::Render(IDirect3DDevice9* pd3dDevice) //в данный метод
{

//...
//добавляем
if ( m_b_Show_2d_visual_effects )
//перед строкой
	g_Snow.Draw();
	
	
	
HRESULT CD3DGameApp::FrameMove()) //в данный метод
{

//...
//добавляем
if ( m_b_Show_2d_visual_effects )
//перед строкой
	g_Snow.FallSnow();



В файле

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

добавляем в самый конец новую строчку -

show_2d_visual_effects=1; //отображать 2d визуальные эффекты 0 - нет, 1 - да

Сохраняем изменения.

Компилируем приложение. Запускаем.

Теперь при каждом старте

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Можно через файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

задавать режим отображения визуальных эффектов.

Если зададим 0 - сохраним изменения и затем запустим
путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

увидим что 2d визуальный эффект падающий снег - пропал.

Закроем приложение по нажатию клавиши [Esc].

Теперь в файле
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

зададим как
show_2d_visual_effects=1; //отображать 2d визуальные эффекты 0 - нет, 1 - да

Сохраняем, снова запускаем
путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

2d снег стал виден снова.

Таким образом Мы вынесли настройку отображения 2d визуальных эффектов в виде
падающего снега в файл настроек
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

fle game generator - 4 вида 3d кубиков



3) У нас слишком много летающих кубиков. Сделаем, чтобы летал всего 1.

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

В модуле start.cpp летящие кубики отображаются строкой кода
g_Snow3D.Draw();

объект g_Snow3D

приведет нас к классу CSnow3D,
который объявлен в модуле snow_3d.h

Найдите модуль snow_3d.h в папке scripts/snow в окне Solution explorer

fle game generator - модуль snow_3d.h в папке scripts/snow в окне Solution explorer

строка кода
#define Snow3dParamsFile L"\\Media\\textures\\snow\\3d\\params.txt"

говорит сама за себя.

Т. е. в папке \\Media\\textures\\snow\\3d\\ есть файл

params.txt

где нужно всего лишь указать 1 параметр

вместо
snows_num=500; //число снежинок

написать как
snows_num=2; //число снежинок

Сохранить изменения в файле и перезапустить приложение

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Почему я указал 2 снежинки, т. е. 2 кубика, а не 1 ?

Дело в том, что 1 кубик Вы можете даже не увидеть. Особенно если
он движется где-то под плоскостью пола.

А вот 2 - увидите наверняка !

fle game generator - 1 летящий красный кубик

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

Это уже чуть сложнее.

Но я надеюсь вы разберетесь.

А вот и ответ:

В модуле start.cpp анимация происходит в методе
CD3DGameApp::FrameMove

Там же есть строчка кода
g_Snow3D.FallSnow();

Уже знакомый вам объект g_Snow3D

не правда ли ?

Остается заглянуть в реализацию метода

CSnow3D::FallSnow

в модуле snow_3d.cpp

вместо строк


//анимируем падение снежинок

		pSnow->m_Position.x += g_fElapsedTime * pSnow->Speed.x;
		pSnow->m_Position.y += g_fElapsedTime * pSnow->Speed.y;
		pSnow->m_Position.z += g_fElapsedTime * pSnow->Speed.z;
		


написать


		pSnow->m_Position.x += g_fElapsedTime * pSnow->Speed.x * 0.0f;
		pSnow->m_Position.y += g_fElapsedTime * pSnow->Speed.y * 0.0f;
		pSnow->m_Position.z += g_fElapsedTime * pSnow->Speed.z * 0.0f;		
		


То есть вся суть в том, что поскольку скорость перемещений кубика
по осям x, y, z всегда будет равна 0, то кубик никуда
перемещаться не будет.

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

модуль start.cpp

метод
CD3DGameApp::Render

строку RenderFloor(pd3dDevice);

закомментировать

//RenderFloor(pd3dDevice);

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

Получаем результат.

fle game generator - 1 неподвижный красный кубик

Правда когда пол отображается существенно легче ориентироваться
в 3d пространстве перемещая и вращая камеру.

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

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

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

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

Клавиши и мышь управляют нашей камерой и это описано
в readme.txt который есть внутри папки

путь_к_папке_исходных_файлов_fgg\fgg\fgg\

[Enter] - переключение в полноэкранный/оконный режим

[Esc] - выход из приложения


клавиша [F] - скрыть/показать FPS и другие параметры.

клавиша [M] - скрыть/показать кнопку настроек экрана.

клавиша Пробел - следующая заставка

клавиша [R] - включить/остановить воспроизведение музыки

клавиша [T] - перейти к воспроизведению следующего муз. трека
(независимо от заданного режима воспроизведения музыки).


Управление камерой:

левая или правая или средняя кнопка мыши + перемещение указателя мыши - изменение угла
обзора из камеры.

Клавиши управления курсором - основные или на доп. клавиатуре или
W, A, S, D - перемещение в 3d пространстве.

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

Это делается достаточно просто -

в модуле snow_3d.cpp

находим метод
CSnow3D::Draw



открываем его реализацию в модуле
models.cpp

CD3D9Mesh::Draw(

там есть метод

CD3D9Mesh::SetupMatrices(

который собственно и отвечает за все трансформации
летающих 3d кубиков - вращения, перемещения, изменения масштаба.



вместо строки
m_f_Y_Rotation = 0.0f;

создать строку
m_f_Y_Rotation += g_fElapsedTime * 1.0f;

Сохранить изменения. Собрать и запустить приложение.

Чтобы 3d кубики было лучше видно я сделал снова, чтобы кубики
перемещались и изменил для них такие параметры



путь_к_папке_исходных_файлов_fgg\fgg\fgg\\Media\textures\snow\3d\params.txt

сделал 10 кубиков и крупнее их размер
snows_num=10; //число снежинок

min_snow_scale=100.0f; //мин. размер снежинок
max_snow_scale=100.0f; //макс. размер снежинок



Вот что у меня получилось

fle game generator - вращающиеся кубики

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

Просто для демонстрации я использовал gif изображение
содержащее всего 4 кадра анимации.

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

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



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


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