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


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

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector
Форма для смены шаблонов сайта.модуль template selector Для этих целей разработан модуль для megainformatic cms и её модификаций (express, files, admin
подробнее...

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

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

megainformatic - Продолжаем Создание скелета для данной модели

megainformatic - Построение ирерархических связей между объектами и основы 3d анимирования

megainformatic - Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

megainformatic - Создание модели броневика (Хэд)

megainformatic cms e-mailer

megainformatic cms e-mailer

megainformatic cms e-mailer

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

megainformatic - Путешествие в мир 3d

megainformatic - Путешествие в мир 3d - страница 2

megainformatic - Путешествие в мир 3d - страница 3

megainformatic - Путешествие в мир 3d - страница 4

megainformatic - Путешествие в мир 3d - страница 5

megainformatic - Путешествие в мир 3d - страница 6

megainformatic - Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

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

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

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



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



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

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



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


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