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


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

megainformatic - статья Тимонина Андрея - Регистрация. Часть 1. Создаем страничку регистрации на сайте.
[к содержанию] [другие статьи Тимонина Андрея] Регистрация. Часть 1. Создаем страничку регистрации на сайте. автор: Тимонин Андрей дата публикации на сайте Мега Информатик: 18.
подробнее...

Теги

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

Статьи сайта

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

megainformatic - Оплата заказа через Сбербанк

megainformatic - Пример игры с исходным кодом Donuts3D

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - программируем сами

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - создаем игровую оболочку

megainformatic - Открытый Полный Исходный код игры Дорога в Город

megainformatic - Как создать игру - Веселый Единственный Буквоежка - программируем основу будущей игры

megainformatic - Как создать игру - Веселый Единственный Буквоежка - выводим заставку

megainformatic - Как создать игру - Веселый Единственный Буквоежка - игровое меню

megainformatic - Как создать игру - Веселый Единственный Буквоежка - движение и анимация героя

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

megainformatic - Примеры моих работ

megainformatic - Музыкальные темы

megainformatic - Уроки Photoshop - Чудеса

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

megainformatic - Онлайн Обучение, Репетитор

megainformatic - Уроки Photoshop - Рисуем и Анимируем

megainformatic - Уроки Photoshop - Рисуем и Анимируем - Урок 1 - Старт

megainformatic - Уроки Photoshop - Рисуем и Анимируем на AllSoft.ru

megainformatic - DirectX 9c - Изучаем пример MultAnimation

megainformatic - megainformatic cms Система Управления Контентом

megainformatic - Темы для WordPress

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

megainformatic - Макет дизайна Вашего сайта

скачать megainformatic cms

megainformatic - Итоги 2010 года

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

megainformatic - как создать инсталлятор для собственной cms

megainformatic - Новости - страница 2

Нововведения в megainformatic cms

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

Уроки Верстки

Система автоматизированной е-майл рассылки

Система автоматизированной е-майл рассылки

megainformatic - Выгрузка файла на сайт

megainformatic - выпадающее меню на html и css

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 Первая мелодия

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 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







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 треков
megainformatic Размещение баннерной рекламы у нас
визиты
сегодня: 402
всего: 13090
посетители
сегодня: 107
всего: 22283
Время загрузки: 1,2819