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


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

megainformatic - Основы создания 3d игр - проект Тайны Морских Глубин
        [статьи] [как создать игру ну, погоди!]        
подробнее...

Теги

создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт

Статьи сайта

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

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

Система Автоматизации Доставки Электронных Заказов 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 - СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

megainformatic - Моделирование обстановки помещения

megainformatic - Создание модели автомобиля

megainformatic - Создание текстурной развертки для модели автомобиля

megainformatic - Создание анимации вращающихся колес автомобиля

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

megainformatic - Основы 3D-анимации, экспорт скелетной анимации

Creating game on fle game engine - Simple game / Создание игры на fle game engine - Simple game

10 - Проверка столкновений



read paper in english

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





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка







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

Создадим файл для определений границ

simple_game\Media\prop_desc\collision_rects_desc.txt



И определим границы -

ball; 0.0f; -0.07f; 0.08f; -0.16f; 0.5f;
hole; 0.138510f; -0.144f; 0.1f; -0.085f; 1.0f;


1 значение - это имя игрового объекта, следующие 4 параметра - его границы - левая верхняя точка - x и y, и правая нижняя - также.
Последнее значение - это масштабный коэффициент - он учитывается при вычислении границ.

Теперь создадим файл для описания свойств - для установки связи между объектами границ и игровыми объектами

simple_game\Media\prop_desc\game_object_class_properies.txt



Запишем туда -

//
// описание свойств шарика
//
begin =;
Name = ball;
Collided = true;
end =;
//
// описание свойств ямы
//
begin =;
Name = hole;
Collided = true;
end =;


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

Свойство Collided = true - означает что будет использоваться проверка коллизий или по-другому столкновений, для данного игрового объекта. Значение может быть установлено и в false. Но в контексте данного урока нам для обоих объектов нужна проверка столкновений.

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

В нашем случае будет задано несколько иное поведение: шарик может пройти сквозь яму. Будет лишь фиксироваться сам факт попадания в яму и больше ничего.

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



Для реализации проверки столкновений прыгающего шарика с ямами нужно выполнить следующие действия:

В модуль

start.cpp



Подключить заголовочные файлы collision.h и game_object_properties.h -

после строки

#include "textures.h"



добавить -

#include "game_object_properties.h"
#include "collision.h"





после строки

#define SimpleGameScenesPath L"\\Media\\textures\\environment\\scenes\\simple_game\\"



добавить -

//==========================================
//
// имена файлов описаний свойств игровых объектов
// и границ для столкновений
//
//==========================================

#define GameObjectPropertyValue L"\\Media\\prop_desc\\game_object_class_properies.txt"

//индексы игровых объектов, имеющих свойства в файле свойств
#define ball_prop 0
#define hole_prop 1


Для перемещений прыгающего шарика и проверки столкновений и их обработки добавить в

start.h



После строки -

D3DXVECTOR2 m_scrCursorPos;



такой код -

//перемещения прыгающего шарика
void MoveJumpedBall();
float m_fCurrentTimer;
float m_fTimeDelay;
float m_fMoveSpeed;

D3DXVECTOR2 m_v2MoveDirs;
void ChangeMoveDirs(int Dir);

void JumpedBallContactHole();

bool m_bContactWithHoleDetected;
float m_fHoleX;
float m_fHoleY;

bool change_moved_ball_TimePause(float PauseInterval = 0.0f);
void change_moved_ball_ResetPauseTimer();
DWORD change_moved_ball_m_dwOldTime;
DWORD change_moved_ball_m_dwTime;
float change_moved_ball_m_fTimePeriod;

//переопределенная сцена и её методы

//скрываем все плашки ям (их переднюю часть)
void CreateOverridedGameScene();

CPtrArray* m_pOverridedGameScene; //массив объектов видоизмененной игровой сцены
void FreeOverridedGameScene();

//скрытие/показ указателя мыши
void HideSystemMouseCursorView(bool Hide);

//счёт попаданий в яму
int m_iHoleHits;
bool m_bInHole;

//сброс попадания в яму
bool hole_hit_TimePause(float PauseInterval = 0.0f);
void hole_hit_ResetPauseTimer();
DWORD hole_hit_m_dwOldTime;
DWORD hole_hit_m_dwTime;
float hole_hit_m_fTimePeriod;



В модуль

start.cpp



1)

Добавляем

В метод
CD3DGameApp::FrameMove



после строки

g_Splash.Anim();

код -

MoveJumpedBall();

В конец модуля

start.cpp



добавляем код -

//перемещения прыгающего шарика
void CD3DGameApp::MoveJumpedBall()
{
g_AI_Ball_Sprite.Anim();

change_moved_ball_TimePause(m_fTimeDelay);
hole_hit_TimePause(2.0f);
//проверяем контакт шарика с ямой
JumpedBallContactHole();
}


Реализацию остальных методов и их использование Вы можете посмотреть сами в коде модуля
start.cpp



Отмечу лишь, что для проверки столкновения шарика с границами ямы используется вызов функции CollisionDetected, которая проверяет пересекаются ли границы объекта ball с границами объекта hole и если да - то возвращается значение true.



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





Скачать готовую игру simple game версия 1.0.0 4.01.2017 (без исходного кода).

Исходный код и другие полезные материалы и инструменты Вы получаете при оформлении платной подписки !


Размер: 51,8 Mb



Чтобы иметь возможность самостоятельно создать свою игру на базе примера simple_game с неограниченными возможностями дальнейшего расширения! - оформите подписку на fle game engine -


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

Оформив подписку на fle game engine Вы получаете пример игры simple_game с исходным кодом, и сможете не просто прочитать всё, что описано, но и самостоятельно проделать в собственном приложении с возможностью неограниченного расширения. Также Вы получаете

Самую свежую версию Scene Editor fge 1.0.2 (на текущий момент) с поддержкой большего количества возможностей: сетка, настройки, скроллинг и другие. В бесплатной версии эти возможности не поддерживаются. подробнее о составе платной подписки.





[назад] [далее]



 

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



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


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