Мультимедийные возможности с++


Загрузка карты и ее скроллинг


Download 143.59 Kb.
bet3/5
Sana17.06.2023
Hajmi143.59 Kb.
#1530379
1   2   3   4   5
Bog'liq
Информатика

2.Загрузка карты и ее скроллинг
Вторым пунктом является загрузка карты и ее скроллинг. Для создания карты использовался специальный редактор карт Tiled Map Editor (TMP). Он хорош тем, что карту, созданную в этом редакторе, состоящем из объектов, тайлов и их слоев, можно сохранить в XML-подобном файле с расширением .tmx и затем с помощью специальной библиотеки TinyXML на C++ считать ее.
В целях того, чтобы не было видно тех участков, которые находятся за границами карты, был написан следующий код:
#include 
using namespace sf;
sf::View view;
void setPlayerCoordinateForView(float x, float y) {
float tempX = x; float tempY = y;
if (x < 320) tempX = 320;//левая сторона карты
if (x > 2300) tempX = 2300;//правая сторона
if (y < 240) tempY = 240;//верхняя сторона
if (y > 300) tempY = 300;//нижняя сторона
view.setCenter(tempX, tempY);}
3.Взаимодействие персонажа с картой
Для того чтобы персонажи начали физически взаимодействовать с элементами карты необходимо продумать физику игры. Для взаимодействия главного персонажа с элементами карты был написан следующий код:
void checkCollisionWithMap(float Dx, float Dy) //взаимодействие с картой
{
for (int i = 0; i if (getRect().intersects(obj[i].rect))//проверяем пересечение игрока с объектом
{
if (obj[i].name == “solid”)//если встретили препятствие
{
if (Dy>0) { y = obj[i].rect.top – h; dy = 0; onGround = true; } //если препятствие снизу, то скорость падения равняется 0 и наш персонаж находится на земле
if (Dy<0) { y = obj[i].rect.top + obj[i].rect.height; dy = 0; }//если препятствие сверху
if (Dx>0) { x = obj[i].rect.left – w; }//препятствие справа
if (Dx<0) { x = obj[i].rect.left + obj[i].rect.width; }//препятствие слева
}
Аналогично было прописано взаимодействия с картой Марио, с то лишь разницей, что он должен непрерывно ходит справа налево, то есть, на карте его необходимо огородить двумя препятствиями. При этом скорость Марио была задана случайной величиной, то есть Марио постоянно меняет скорость своего передвижение, тем самым усложняя игру.

Рисунок 2 – Расположения персонажа Mario на карте

Download 143.59 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling