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


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

4.Взаимодействие с врагом
У любого платформера есть какая-либо цель, миссия, после выполнения которой игра заканчивается либо победой игрока, либо его поражением. В данном платформере в качестве примера было принято решение целью игры сделать победу персонажа игры Sonic – Tails над персонажем из другой игровой вселенной – Mario. Для этого необходимо, во-первых, прописать последствия их столкновений, во-вторых, дать некоторое количество жизней Mario (например, 100) и, в-третьих, прописать два варианта событий – победа и поражение в игре. В следующем коде представлен результат:
if (p.getRect().intersects(easyEnemy.getRect())) //проверяем пересечение игрока с врагом
{if ((p.dy > 0)&(p.onGround == false)&(easyEnemy.health > 0)) { p.dy = -1; easyEnemy.health -= 25; }/*Если игрок падает сверху на еще живого Mario, то он отскакивает от него вверх и при этом количество жизней Mario сокращается на 25*/
else
if ((easyEnemy.health > 0)) {p.sprite.setColor(Color::Red); p.health-=100;{text2.setString(“GAME OVER”); text2.setPosition(view.getCenter().x – 160, view.getCenter().y – 0); }} //Если игрока убил Mario, то появляется надпись красного цвета GAME OVER и экран игры начинает крутится против часовой стрелки, сам же Tails окрашивается в красный цвет.
else
if (easyEnemy.health <= 0) { easyEnemy.dx = 0; easyEnemy.sprite.setTextureRect(IntRect(-4, 20, 60, 20)); text2.setString(“YOU WIN”); text2.setColor(Color::Green); text2.setPosition(view.getCenter().x – 160, view.getCenter().y – 0); }} //Если игрок 4 раза прыгнул на Mario, то появляется надпись зеленого цвета YOU WIN.
На рисунке 3 представлены два возможных исхода игры:

Рисунок 3 – Два возможных результата игры победа и поражение главного героя
5.Звук
Благодаря тому, что в качестве мультимедийной библиотеки в данной работе используется SFML, которая является высокоуровневой библиотекой, это позволяет добавлять в приложение музыку, в частности как фоновую, так и для озвучивания отдельных движений, например, прыжков героя. В качестве фоновой музыки была выбрана заглавная композиция фильма Рокки. Для добавления музыкального сопровождения необходимо подключить #include

и прописать в главной функции следующий код:
Music music;
music.openFromFile(“Music.ogg”);
music.play();
Music jumper;
jumper.openFromFile(“Jump.ogg”);

while (window.isOpen())
{ if (p.state == p.jump) jumper.play();
… }

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