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


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

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14
Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 14 Онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as). Ну вот и прошли бурные школьные будни. Наступил серый и неприметный выходной день. Унылый и осенний. Но почему ? Ведь так хорошо отдохнуть, придаться веселью. Если за окном серо и с утра льёт дождик, то и настроение пасм
подробнее...

Теги

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

Статьи сайта

megainformatic - Урок 2 Создаем и обрабатываем команды меню. Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

megainformatic - Урок 4 Построение класса приложения

megainformatic - Урок 4 Построение класса приложения - Страница 2

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

megainformatic - Урок 6 Игровая логика

megainformatic - Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

megainformatic - Урок 7 2D-анимация

megainformatic - Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

megainformatic - Урок 9 Тестирование и отладка приложения

megainformatic - Мои Музыкальные Миры

megainformatic - уроки Photoshop free

megainformatic cms express

megainformatic cms express

megainformatic cms express

megainformatic cms express files

megainformatic - Методы создания растровых изображений в Adobe Photoshop

megainformatic - Создание фотореалистичной текстуры травы

megainformatic - Рабочее пространство Adobe Photoshop

megainformatic - Бесшовные (тайловые) текстуры

megainformatic - Создание изображений огня, воды, неба

megainformatic - Создание текстур горных пород и суши (урок 5)

megainformatic - Рисование персонажей (урок 6)

megainformatic - Рисование фона (урок 6 часть 2)

megainformatic - Рельефные изображения

Добавление статей на сайт под управлением megainformatic cms express

megainformatic - Воспроизведение файлов в форматах it, xm, s3m, mod

megainformatic - Воспроизведение файлов в форматах it, xm, s3m, mod - страница 2

megainformatic - Воспроизведение в игре музыки в формате XM

megainformatic - Воспроизведение файлов в формате OGG Vorbis

megainformatic - игра "Веселый Буквоежка" - инструменты разработки

megainformatic - Игра "Веселый Буквоежка" - история создания проекта

megainformatic - Как анимировать паука ?

megainformatic - Уроки Photoshop

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Купить Уроки Photoshop - Рисуем и Анимируем

megainformatic - Эмулятор игры Ну, Погоди!

сайт megainformatic - Говорящий Комикс Веселый Буквоежка

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Моделируем девушку в 3d используя 3ds max

megainformatic - Уроки Fruity Loops Studio - пишем свою музыку

megainformatic - Уроки Fruity Loops Studio - пишем свою музыку - урок 1 - Быстрый старт

megainformatic - Сброник статей по дизайну и компьютерной графике. Обзор.

megainformatic - Уроки 3d на delphi directx - Вывод Заставки

Добро пожаловать в систему управления сайтом megainformatic cms

megainformatic - Создание эскиза и макета страницы сайта

megainformatic - Верстка созданного макета

megainformatic - Добавление модулей обеспечивающих минимально необходимый функционал

megainformatic - Основы добавления контента на сайт, управления и поддержки сайта

megainformatic - Проверка работы сайта, установка на хостинг

megainformatic - Основы продвижения созданного сайта

megainformatic - Создание шаблонов

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

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



Мы плавно подобрались к изучению следующего вопроса.

read paper in english





Содержание

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

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

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

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

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

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

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

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

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

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

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







3) Научиться управлять перемещением сцены - чтобы она двигалась при перемещениях мыши.

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

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

Тем самым Вы узнаете сразу несколько вещей: как перемещать по экрану спрайты, как выполнять управление игрой посредством DirectInput и наконец, как перемещать игровую сцену.

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

Итак, чтобы отследить перемещения мыши в модуль start.h добавим такой код

void LoadGameDataBlock();//это код, после которого надо добавить

//перемещение указателя мыши
void ChangeGameCursorPos(); //это код, который нужно добавить



А в модуль start.cpp добавить

в методе

CD3DGameApp::FrameMove

case APPSTATE_READY:

UpdateInput( &m_UserInput ); //это код, после которого надо добавить

//перемещение указателя мыши
ChangeGameCursorPos(); //это код, который нужно добавить



и в самый конец модуля start.cpp

добавить реализацию этого метода -

void CD3DGameApp::ChangeGameCursorPos()
{
POINT CursorPos;
GetCursorPos(&CursorPos);

RECT rcClip;
GetWindowRect(m_hWndMain, &rcClip);

LONG cursor_at_window_x = CursorPos.x - rcClip.left;
LONG cursor_at_window_y = CursorPos.y - rcClip.top;

LONG cursor_spr_left_limit = 0;
LONG cursor_spr_top_limit = 0;
LONG cursor_spr_right_limit = (LONG)m_dwScreenWidth;
LONG cursor_spr_bottom_limit = (LONG)m_dwScreenHeight;

if ( cursor_at_window_x < cursor_spr_left_limit )
cursor_at_window_x = cursor_spr_left_limit;

if ( cursor_at_window_x > cursor_spr_right_limit )
cursor_at_window_x = cursor_spr_right_limit;

if ( cursor_at_window_y < cursor_spr_top_limit )
cursor_at_window_y = cursor_spr_top_limit;

if ( cursor_at_window_y > cursor_spr_bottom_limit )
cursor_at_window_y = cursor_spr_bottom_limit;

m_scrCursorPos.x = (float)cursor_at_window_x;
m_scrCursorPos.y = (float)(cursor_at_window_y);
g_AI_Ball_Sprite.m_v2Pos = m_scrCursorPos;
}



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

Прыгающий шарик перемещаемый мышкой



Теперь вы знаете как перемещать спрайты, это может пригодиться вам при создании других игр.

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

//g_AI_Ball_Sprite.m_v2Pos = m_scrCursorPos;


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

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

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

Но у нас же есть такой объект ! - если Вы помните из страницы 6 - Загрузка игровой сцены, он называется

m_pGameSceneDataFile

Уже хорошо. А помните ли Вы какой метод для него добавляли ? Он был связан со скроллингом сцены.

ScrollGameScene ?

Да ! Он самый. Посмотрите какой код там внутри и Вы, возможно уже догадаетесь какой код нужно написать. Точнее всего несколько строк кода.

Давайте напишем его.

//g_AI_Ball_Sprite.m_v2Pos = m_scrCursorPos; //после данной закомментированной строки добавим нижеследующий код

POINT Pos;
Pos.x = cursor_at_window_x;
Pos.y = cursor_at_window_y;

D3DXVECTOR2 vPos;
Screen2Vector(&Pos, &vPos);

g_fHorizontalScrollOffset = vPos.x;
g_fVerticalScrollOffset = vPos.y;
ScrollGameScene();



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



Мы добились желаемого !!!

Однако, как Вы можете заметить, есть и некоторые недостатки.

1) Это то, что когда сцена уходит за пределы экрана, на её месте остается пустота - синий фон.

и

2) То что шарик не всегда красиво проваливается в яму. Если он окажется немного ниже ямы или чуть левее или правее - то получается совсем не красиво. Часть шарика перекрывается фоном имитирующим верхнюю видимую часть ямы.

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

А вот для решения второй проблемы можно придумать более хитрые способы. О них мы поговорим на следующей странице. Оставайтесь с нами ! :)



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



 

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



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


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