Added music and sfx
This commit is contained in:
parent
5d76cfe49c
commit
a3c829f7c8
Binary file not shown.
BIN
assets/audio/music/victory.ogg
Normal file
BIN
assets/audio/music/victory.ogg
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Bark1.wav
Normal file
BIN
assets/audio/sfx/Bark1.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Bark2.wav
Normal file
BIN
assets/audio/sfx/Bark2.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Bark3.wav
Normal file
BIN
assets/audio/sfx/Bark3.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Bark4.wav
Normal file
BIN
assets/audio/sfx/Bark4.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Bark5.wav
Normal file
BIN
assets/audio/sfx/Bark5.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Fire.wav
Normal file
BIN
assets/audio/sfx/Fire.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Voice_Oooh_1.wav
Normal file
BIN
assets/audio/sfx/Voice_Oooh_1.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Voice_Ouch_1.wav
Normal file
BIN
assets/audio/sfx/Voice_Ouch_1.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Voice_Ouch_2.wav
Normal file
BIN
assets/audio/sfx/Voice_Ouch_2.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Voice_Ouch_3.wav
Normal file
BIN
assets/audio/sfx/Voice_Ouch_3.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Whimper1.wav
Normal file
BIN
assets/audio/sfx/Whimper1.wav
Normal file
Binary file not shown.
BIN
assets/audio/sfx/Whimper2.wav
Normal file
BIN
assets/audio/sfx/Whimper2.wav
Normal file
Binary file not shown.
Binary file not shown.
@ -34,39 +34,21 @@ public:
|
|||||||
switch (Game::event.key.keysym.sym)
|
switch (Game::event.key.keysym.sym)
|
||||||
{
|
{
|
||||||
case SDLK_UP:
|
case SDLK_UP:
|
||||||
// transform->velocity.y = -1;
|
|
||||||
// sprite->Play("WalkNorth");
|
|
||||||
// if (transform->velocity.x < 0)
|
|
||||||
// {
|
|
||||||
// sprite->Play("WalkNW");
|
|
||||||
// }
|
|
||||||
// if (transform->velocity.x > 0)
|
|
||||||
// {
|
|
||||||
// sprite->Play("WalkNW");
|
|
||||||
// sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
case SDLK_DOWN:
|
case SDLK_DOWN:
|
||||||
// transform->velocity.y = 1;
|
|
||||||
// sprite->Play("WalkSouth");
|
|
||||||
// if (transform->velocity.x < 0)
|
|
||||||
// {
|
|
||||||
// sprite->Play("WalkSW");
|
|
||||||
// }
|
|
||||||
// if (transform->velocity.x > 0)
|
|
||||||
// {
|
|
||||||
// sprite->Play("WalkSW");
|
|
||||||
// sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
case SDLK_LEFT:
|
case SDLK_LEFT:
|
||||||
transform->velocity.x = -1;
|
transform->velocity.x = -1;
|
||||||
|
if(Game::playerIsGrounded){
|
||||||
sprite->Play("Walk");
|
sprite->Play("Walk");
|
||||||
|
}
|
||||||
sprite->spriteFlip = SDL_FLIP_NONE;
|
sprite->spriteFlip = SDL_FLIP_NONE;
|
||||||
break;
|
break;
|
||||||
case SDLK_RIGHT:
|
case SDLK_RIGHT:
|
||||||
transform->velocity.x = 1;
|
transform->velocity.x = 1;
|
||||||
|
if(Game::playerIsGrounded){
|
||||||
sprite->Play("Walk");
|
sprite->Play("Walk");
|
||||||
|
}
|
||||||
sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
|
sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
|
||||||
break;
|
break;
|
||||||
case SDLK_k:
|
case SDLK_k:
|
||||||
@ -103,10 +85,17 @@ public:
|
|||||||
case SDLK_LEFT:
|
case SDLK_LEFT:
|
||||||
transform->velocity.x = 0;
|
transform->velocity.x = 0;
|
||||||
sprite->Play("Idle");
|
sprite->Play("Idle");
|
||||||
|
if (!Game::gravityOnPlayer){
|
||||||
|
Game::gravityOnPlayer = true;
|
||||||
|
sprite->Play("Fall");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SDLK_RIGHT:
|
case SDLK_RIGHT:
|
||||||
transform->velocity.x = 0;
|
transform->velocity.x = 0;
|
||||||
sprite->Play("Idle");
|
sprite->Play("Idle");
|
||||||
|
if (!Game::gravityOnPlayer){
|
||||||
|
Game::gravityOnPlayer = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SDLK_k:
|
case SDLK_k:
|
||||||
if (Game::debugCollisionBoxes)
|
if (Game::debugCollisionBoxes)
|
||||||
|
@ -41,6 +41,7 @@ bool Game::isRunning = false;
|
|||||||
auto& player(manager.addEntity());
|
auto& player(manager.addEntity());
|
||||||
|
|
||||||
// auto& enemy(manager.addEntity());
|
// auto& enemy(manager.addEntity());
|
||||||
|
auto& puppy(manager.addEntity());
|
||||||
|
|
||||||
// auto& scoreboard(manager.addEntity());
|
// auto& scoreboard(manager.addEntity());
|
||||||
auto& uiInfo(manager.addEntity());
|
auto& uiInfo(manager.addEntity());
|
||||||
@ -49,8 +50,14 @@ bool Game::debugCollisionBoxes = false;
|
|||||||
|
|
||||||
bool Game::gravityOnPlayer = true;
|
bool Game::gravityOnPlayer = true;
|
||||||
|
|
||||||
|
bool Game::playerIsGrounded = false;
|
||||||
|
|
||||||
int gScale = 0;
|
int gScale = 0;
|
||||||
|
|
||||||
|
int last_time;
|
||||||
|
int current_time;
|
||||||
|
int diff_time;
|
||||||
|
|
||||||
Game::Game() {
|
Game::Game() {
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
@ -94,38 +101,49 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
|
|||||||
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "Couldn't initialize SDL audio mixer!, Error: %s", SDL_GetError());
|
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "Couldn't initialize SDL audio mixer!, Error: %s", SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// current_time = SDL_GetTicks();
|
||||||
|
|
||||||
assets->AddTexture("terrain", "assets/textures/tiles/br-tiles.png");
|
assets->AddTexture("terrain", "assets/textures/tiles/br-tiles.png");
|
||||||
assets->AddTexture("player", "assets/textures/actors/firefighter.png");
|
assets->AddTexture("player", "assets/textures/actors/firefighter.png");
|
||||||
// assets->AddTexture("player", "assets/textures/actors/owl_anim.png");
|
|
||||||
assets->AddTexture("font", "assets/textures/ui/ui-font-cloud-sans.png");
|
assets->AddTexture("font", "assets/textures/ui/ui-font-cloud-sans.png");
|
||||||
assets->AddTexture("textBox", "assets/textures/ui/ui-element-cloud.png");
|
assets->AddTexture("textBox", "assets/textures/ui/ui-element-cloud.png");
|
||||||
|
assets->AddTexture("puppy","assets/textures/actors/beaglepuppy.png");
|
||||||
|
|
||||||
assets->AddMusicTrack("simonZ","assets/audio/music/sillypuppy.ogg");
|
assets->AddMusicTrack("simonZ","assets/audio/music/sillypuppy.ogg");
|
||||||
|
assets->AddMusicTrack("simonZ","assets/audio/music/victory.ogg");
|
||||||
|
|
||||||
assets->AddSoundClip("bwoop","assets/audio/sfx/bwoop.wav");
|
assets->AddSoundClip("bwoop","assets/audio/sfx/bwoop.wav");
|
||||||
|
assets->AddSoundClip("bark1","assets/audio/sfx/Bark1.wav");
|
||||||
|
assets->AddSoundClip("bark2","assets/audio/sfx/Bark2.wav");
|
||||||
|
|
||||||
map = new Map("terrain",globalScale,16);
|
map = new Map("terrain",globalScale,16);
|
||||||
|
|
||||||
const char* myText = "Beagle Rescue";
|
const char* myText = "Find lost puppies!";
|
||||||
text = new UIText(myText, "font", 0, 0, 8, 12, globalScale);
|
text = new UIText(myText, "font", 0, 0, 8, 12, globalScale);
|
||||||
text->ParseString(myText, 12, 22, globalScale);
|
text->ParseString(myText, 12, 22, globalScale);
|
||||||
SDL_Rect myDestRect = SDL_Rect();
|
SDL_Rect myDestRect = SDL_Rect();
|
||||||
myDestRect.x = 12;
|
myDestRect.x = 12;
|
||||||
myDestRect.y = 8;
|
myDestRect.y = 8;
|
||||||
myDestRect.w = 120;
|
myDestRect.w = 160;
|
||||||
myDestRect.h = 40;
|
myDestRect.h = 40;
|
||||||
my9Slice = new UINineSlice("textBox");
|
my9Slice = new UINineSlice("textBox");
|
||||||
my9Slice->MakeSlices("textBox",32,32,14,17,14,17,myDestRect,globalScale);
|
my9Slice->MakeSlices("textBox",32,32,14,16,14,16,myDestRect,globalScale);
|
||||||
|
|
||||||
//ecs implementation
|
//ecs implementation
|
||||||
|
|
||||||
map->LoadMap("assets/maps/br-map-color.txt",70,45, globalScale);
|
map->LoadMap("assets/maps/br-map-color.txt",70,45, globalScale);
|
||||||
|
|
||||||
player.addComponent<TransformComponent>(150*globalScale,80*globalScale,22,42,globalScale);
|
player.addComponent<TransformComponent>(860*globalScale,630*globalScale,22,42,globalScale);
|
||||||
// player.addComponent<TransformComponent>(150*globalScale,80*globalScale,40,40,globalScale);
|
// player.addComponent<TransformComponent>(150*globalScale,80*globalScale,40,40,globalScale);
|
||||||
player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/firefighter.json");
|
player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/firefighter.json");
|
||||||
player.addComponent<KeyboardController>();
|
player.addComponent<KeyboardController>();
|
||||||
player.addComponent<ColliderComponent>("player");
|
player.addComponent<ColliderComponent>("player");
|
||||||
player.addGroup(groupPlayers);
|
player.addGroup(groupPlayers);
|
||||||
|
|
||||||
|
puppy.addComponent<TransformComponent>(1024*globalScale,210*globalScale,36,30,globalScale);
|
||||||
|
puppy.addComponent<SpriteComponent>("puppy", SpriteComponent::spriteObject);
|
||||||
|
puppy.addGroup(groupObjects);
|
||||||
|
|
||||||
// enemy.addComponent<TransformComponent>(180*globalScale,180*globalScale,32,32,globalScale);
|
// enemy.addComponent<TransformComponent>(180*globalScale,180*globalScale,32,32,globalScale);
|
||||||
// enemy.addComponent<SpriteComponent>("robber", SpriteComponent::spriteAnimation, "assets/textures/actors/robberrodent.json");
|
// enemy.addComponent<SpriteComponent>("robber", SpriteComponent::spriteAnimation, "assets/textures/actors/robberrodent.json");
|
||||||
// enemy.addGroup(groupEnemies);
|
// enemy.addGroup(groupEnemies);
|
||||||
@ -141,7 +159,7 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
|
|||||||
auto& tiles(manager.getGroup(Game::groupMap));
|
auto& tiles(manager.getGroup(Game::groupMap));
|
||||||
auto& players(manager.getGroup(Game::groupPlayers));
|
auto& players(manager.getGroup(Game::groupPlayers));
|
||||||
auto& colliders(manager.getGroup(Game::groupColliders));
|
auto& colliders(manager.getGroup(Game::groupColliders));
|
||||||
// auto& objects(manager.getGroup(Game::groupObjects));
|
auto& objects(manager.getGroup(Game::groupObjects));
|
||||||
// auto& enemies(manager.getGroup(Game::groupEnemies));
|
// auto& enemies(manager.getGroup(Game::groupEnemies));
|
||||||
// auto& projectiles(manager.getGroup(Game::groupProjectiles));
|
// auto& projectiles(manager.getGroup(Game::groupProjectiles));
|
||||||
auto& gui(manager.getGroup(Game::groupUI_Layer0));
|
auto& gui(manager.getGroup(Game::groupUI_Layer0));
|
||||||
@ -172,6 +190,11 @@ void Game::update()
|
|||||||
// std::cout << "Play Music Now" << std::endl;
|
// std::cout << "Play Music Now" << std::endl;
|
||||||
Mix_PlayMusic(assets->GetMusicTrack("simonZ"), -1);
|
Mix_PlayMusic(assets->GetMusicTrack("simonZ"), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Mix_PlayChannel(-1, Game::assets->GetSoundClip("bark1"),0) == 0)
|
||||||
|
{
|
||||||
|
Mix_PlayChannel(-1, Game::assets->GetSoundClip("bark1"),0);
|
||||||
|
}
|
||||||
|
|
||||||
manager.refresh();
|
manager.refresh();
|
||||||
manager.update();
|
manager.update();
|
||||||
@ -181,15 +204,16 @@ void Game::update()
|
|||||||
SDL_Rect cCol = c->getComponent<ColliderComponent>().collider;
|
SDL_Rect cCol = c->getComponent<ColliderComponent>().collider;
|
||||||
if(Collision::AABB(cCol, playerCol))
|
if(Collision::AABB(cCol, playerCol))
|
||||||
{
|
{
|
||||||
// printf("Collision detected!\n");
|
// printf("Collision detected!\nplayerIsGrounded:%d if 0: idle plays\n",playerIsGrounded);
|
||||||
// player.getComponent<TransformComponent>().position = playerPos;
|
if(!playerIsGrounded){
|
||||||
|
player.getComponent<SpriteComponent>().Play("Idle");
|
||||||
|
}
|
||||||
gravityOnPlayer = false;
|
gravityOnPlayer = false;
|
||||||
// player.getComponent<SpriteComponent>().Play("Idle");
|
playerIsGrounded = true;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// while(Collision::AABB(cCol, playerCol))
|
|
||||||
// {
|
|
||||||
// gravityOnPlayer = false;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gravity
|
// Gravity
|
||||||
@ -235,10 +259,10 @@ void Game::render()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// for (auto& o : objects)
|
for (auto& o : objects)
|
||||||
// {
|
{
|
||||||
// o->draw();
|
o->draw();
|
||||||
// }
|
}
|
||||||
//
|
//
|
||||||
// for (auto& e : enemies)
|
// for (auto& e : enemies)
|
||||||
// {
|
// {
|
||||||
|
@ -38,6 +38,7 @@ public:
|
|||||||
static bool isRunning;
|
static bool isRunning;
|
||||||
static bool debugCollisionBoxes;
|
static bool debugCollisionBoxes;
|
||||||
static bool gravityOnPlayer;
|
static bool gravityOnPlayer;
|
||||||
|
static bool playerIsGrounded;
|
||||||
static SDL_Rect camera;
|
static SDL_Rect camera;
|
||||||
static AssetManager* assets;
|
static AssetManager* assets;
|
||||||
enum groupLabels : std::size_t
|
enum groupLabels : std::size_t
|
||||||
|
Loading…
Reference in New Issue
Block a user