Integrated new content, Fixed Map Collision

This commit is contained in:
2021-01-30 20:14:26 -05:00
parent 3f12951802
commit 697ab6f8fc
35 changed files with 223 additions and 453 deletions

View File

@ -60,9 +60,8 @@ void Map::LoadMap(std::string path, int sizeX, int sizeY, int scale)
if (c == '1')
{
auto& tcol(manager.addEntity());
tcol.addComponent<ColliderComponent>("terrain",x*scaledSize,y*scaledSize,tileSize,scale);
tcol.addComponent<ColliderComponent>("terrain",x*scaledSize,y*scaledSize,tileSize,scale);
tcol.addGroup(Game::groupColliders);
mapFile.ignore();
}
mapFile.ignore(2,',');
}

View File

@ -62,11 +62,12 @@ public:
case SDLK_LEFT:
transform->velocity.x = -1;
// sprite->Play("Walk");
sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_RIGHT:
transform->velocity.x = 1;
// sprite->Play("Walk");
// sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
sprite->spriteFlip = SDL_FLIP_HORIZONTAL;
break;
case SDLK_k:
// game->printDebug("");
@ -88,22 +89,21 @@ public:
{
case SDLK_UP:
transform->velocity.y = 0;
// sprite->Play("Idle");
// sprite->Play("idle");
// sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_DOWN:
transform->velocity.y = 0;
// sprite->Play("Idle");
// sprite->Play("idle");
// sprite->spriteFlip = SDL_FLIP_NONE;
break;
case SDLK_LEFT:
transform->velocity.x = 0;
// sprite->Play("Idle");
// sprite->Play("idle");
break;
case SDLK_RIGHT:
transform->velocity.x = 0;
// sprite->Play("Idle");
// sprite->spriteFlip = SDL_FLIP_NONE;
// sprite->Play("idle");
break;
case SDLK_k:
if (Game::debugCollisionBoxes)

View File

@ -96,11 +96,8 @@ public:
int toFrame = cJSON_GetObjectItem(animItem, "to")->valueint;
Animation anim = Animation(fromFrame,toFrame,100);
animations.emplace(name, anim);
// printf("Playing animation named: %s fromFrame:%d toFrame:%d \n",name,fromFrame,toFrame);
Play(name);
// printf("Animation name: \n%s\n",name);
// printf("animation.frames: %d\n", animations[name].frames);
// printf("animations.index: %d\n", animations[name].index);
// printf("animations.speed: %d\n", animations[name].speed);
}
// if(!animations.empty()){
@ -108,9 +105,12 @@ public:
// }else{
// printf("No animations\n");
// }
// Play("S-Fly");
setTex(id);
// Play("idle");
}
Animation Idle = Animation(0,2,100);
animations.emplace("Idle", Idle);
Play("Idle");
setTex(id);
}
SpriteComponent(std::string id, SpriteType sType, char fontLetter, int letterW, int letterH, int letterScale)

View File

@ -40,9 +40,7 @@ bool Game::isRunning = false;
auto& player(manager.addEntity());
auto& enemy(manager.addEntity());
auto& background(manager.addEntity());
// auto& enemy(manager.addEntity());
// auto& scoreboard(manager.addEntity());
auto& uiInfo(manager.addEntity());
@ -95,12 +93,12 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
}
assets->AddTexture("terrain", "assets/textures/tiles/br-tiles.png");
assets->AddTexture("player", "assets/textures/actors/owl_anim.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("textBox", "assets/textures/ui/ui-element-cloud.png");
assets->AddMusicTrack("simonZ","assets/audio/music/sailing16.ogg");
assets->AddMusicTrack("simonZ","assets/audio/music/sillypuppy.ogg");
assets->AddSoundClip("bwoop","assets/audio/sfx/bwoop.wav");
assets->AddTexture("background","assets/textures/tiles/background-sky.png");
map = new Map("terrain",globalScale,16);
@ -117,18 +115,15 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
//ecs implementation
map->LoadMap("assets/maps/br-map.txt",60,25, globalScale);
map->LoadMap("assets/maps/br-map.txt",70,45, globalScale);
player.addComponent<TransformComponent>(50*globalScale,50*globalScale,40,40,globalScale);
player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/owl_anim.json");
player.addComponent<TransformComponent>(150*globalScale,80*globalScale,22,42,globalScale);
// player.addComponent<TransformComponent>(150*globalScale,80*globalScale,40,40,globalScale);
player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/firefighter.json");
player.addComponent<KeyboardController>();
player.addComponent<ColliderComponent>("player");
player.addGroup(groupPlayers);
background.addComponent<TransformComponent>(0*globalScale,0*globalScale,320,240,globalScale);
background.addComponent<SpriteComponent>("background", SpriteComponent::spriteObject);
background.addGroup(groupObjects);
// enemy.addComponent<TransformComponent>(180*globalScale,180*globalScale,32,32,globalScale);
// enemy.addComponent<SpriteComponent>("robber", SpriteComponent::spriteAnimation, "assets/textures/actors/robberrodent.json");
// enemy.addGroup(groupEnemies);
@ -144,12 +139,12 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
auto& tiles(manager.getGroup(Game::groupMap));
auto& players(manager.getGroup(Game::groupPlayers));
auto& colliders(manager.getGroup(Game::groupColliders));
auto& objects(manager.getGroup(Game::groupObjects));
auto& enemies(manager.getGroup(Game::groupEnemies));
// auto& objects(manager.getGroup(Game::groupObjects));
// auto& enemies(manager.getGroup(Game::groupEnemies));
// auto& projectiles(manager.getGroup(Game::groupProjectiles));
auto& gui(manager.getGroup(Game::groupUI_Layer0));
auto& uiText(manager.getGroup(Game::groupUI_Layer1));
auto& backgrounds(manager.getGroup(Game::groupBackground));
void Game::handleEvents()
{
@ -169,11 +164,11 @@ void Game::update()
{
SDL_Rect playerCol = player.getComponent<ColliderComponent>().collider;
Vector2D playerPos = player.getComponent<TransformComponent>().position;
if (Mix_PlayingMusic() == 0)
{
// std::cout << "Play Music Now" << std::endl;
Mix_PlayMusic(assets->GetMusicTrack("simonZ"), -1);
// Mix_PlayMusic(assets->GetMusicTrack("simonZ"), -1);
}
manager.refresh();
@ -214,16 +209,6 @@ void Game::update()
void Game::render()
{
SDL_RenderClear(renderer);
for (auto& b : backgrounds)
{
b->draw();
}
for (auto& o : objects)
{
o->draw();
}
for (auto& t : tiles)
{
@ -236,11 +221,16 @@ void Game::render()
c->draw();
}
}
for (auto& e : enemies)
{
e->draw();
}
// for (auto& o : objects)
// {
// o->draw();
// }
//
// for (auto& e : enemies)
// {
// e->draw();
// }
for (auto& p : players)
{