Working on Collisions
This commit is contained in:
parent
de99b127b1
commit
10e5be7a65
Binary file not shown.
@ -70,19 +70,21 @@ public:
|
||||
spriteType = sType;
|
||||
if(sType == spriteAnimation)
|
||||
{
|
||||
std::string bogusPath = "src/config/credits.json";
|
||||
std::ifstream fin(bogusPath);
|
||||
// std::string bogusPath = "src/config/credits.json";
|
||||
// std::ifstream fin(bogusPath);
|
||||
|
||||
std::ifstream fin(json);
|
||||
|
||||
if(fin.is_open()){
|
||||
std::cout<<"file is open"<<std::endl;
|
||||
// std::cout<<"file is open"<<std::endl;
|
||||
} else {
|
||||
std::cout<<"file is NOT open"<<std::endl;
|
||||
std::cout<<"json file is NOT open"<<std::endl;
|
||||
}
|
||||
|
||||
if(fin.fail()){
|
||||
std::cout<<"file open fail"<<std::endl;
|
||||
std::cout<<"json file open fail"<<std::endl;
|
||||
} else{
|
||||
std::cout<<"file open success"<<std::endl;
|
||||
// std::cout<<"json file open success"<<std::endl;
|
||||
}
|
||||
|
||||
std::ifstream jsonText(json);
|
||||
@ -111,7 +113,7 @@ 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);
|
||||
// printf("Adding animation named: %s fromFrame:%d toFrame:%d \n",name,fromFrame,toFrame);
|
||||
Play(name);
|
||||
}
|
||||
|
||||
|
@ -11,15 +11,14 @@
|
||||
bool Collision::AABB(const SDL_Rect& recA, const SDL_Rect& recB)
|
||||
{
|
||||
if(
|
||||
recA.x + recA.w >= recB.x &&
|
||||
recB.x + recB.w >= recA.x &&
|
||||
recA.y + recA.h >= recB.y &&
|
||||
recB.y + recB.h >= recA.y
|
||||
recA.x + recA.w > recB.x &&
|
||||
recB.x + recB.w > recA.x &&
|
||||
recA.y + recA.h > recB.y &&
|
||||
recB.y + recB.h > recA.y
|
||||
)
|
||||
{
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -28,6 +27,10 @@ bool Collision::AABB(const ColliderComponent& colA, const ColliderComponent& col
|
||||
if(AABB(colA.collider, colB.collider))
|
||||
{
|
||||
// std::cout << colA.tag << " hit: " << colB.tag << std::endl;
|
||||
// if(recA.x + recA.w >= recB.x) { printf("LeftCollision"); }
|
||||
// if(recB.x + recB.w >= recA.x) { printf("RightCollision"); }
|
||||
// if(recA.y + recA.h >= recB.y) { printf("TopCollision"); }
|
||||
// if(recB.y + recB.h >= recA.y) { printf("BottomCollision"); }
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
@ -9,6 +9,7 @@
|
||||
#define SRC_COLLISION_H_
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
// #include "Vector2D.h"
|
||||
|
||||
class ColliderComponent;
|
||||
|
||||
@ -17,6 +18,7 @@ class Collision
|
||||
public:
|
||||
static bool AABB(const SDL_Rect& recA, const SDL_Rect& recB);
|
||||
static bool AABB(const ColliderComponent& colA, const ColliderComponent& colB);
|
||||
// void showColType();
|
||||
};
|
||||
|
||||
|
||||
|
@ -121,7 +121,8 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
|
||||
|
||||
map = new Map("terrain",globalScale,16);
|
||||
|
||||
std::string myText = "Find lost puppies!\nThey need your help!";
|
||||
// std::string myText = "Find lost puppies!\nThey need your help!";
|
||||
std::string myText = "Press U to Start";
|
||||
|
||||
text = new UIText(myText, "font", 0, 0, 8, 12, globalScale);
|
||||
text->ParseString(myText, 12, 22, globalScale, "text");
|
||||
@ -230,7 +231,9 @@ void Game::update()
|
||||
SDL_Rect cCol = c->getComponent<ColliderComponent>().collider;
|
||||
if(Collision::AABB(cCol, playerCol))
|
||||
{
|
||||
// printf("Collision detected!\nplayerIsGrounded:%d if 0: idle plays\n",playerIsGrounded);
|
||||
// printDebug("Collision Detected");
|
||||
// printf("Collision Stats:\nPlayer Center\nx: %d\ny: %d\nObjectCollider Center\nx: %d\ny: %d\n",(playerCol.x+playerCol.w/2)/gScale,(playerCol.y+playerCol.h/2)/gScale,(cCol.x+cCol.w/2)/gScale,(cCol.y+cCol.h/2)/gScale);
|
||||
// printDebug("");
|
||||
if(!playerIsGrounded){
|
||||
player.getComponent<SpriteComponent>().Play("Idle");
|
||||
}
|
||||
@ -324,10 +327,16 @@ void Game::clean()
|
||||
printf("Game Cleaned\n");
|
||||
}
|
||||
|
||||
void Game::printDebug(char* debugInfo)
|
||||
std::string previousMessage = "";
|
||||
|
||||
void Game::printDebug(std::string debugInfo)
|
||||
{
|
||||
printf("%s",debugInfo);
|
||||
printf("\n");
|
||||
if (previousMessage != debugInfo)
|
||||
{
|
||||
std::cout << debugInfo;
|
||||
printf("\n");
|
||||
}
|
||||
previousMessage = debugInfo;
|
||||
}
|
||||
|
||||
void Game::drawLine(Vector2D srcpt, Vector2D destpt, int red, int green, int blue)
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
void update();
|
||||
void render();
|
||||
void clean();
|
||||
void printDebug(char* debugInfo);
|
||||
void printDebug(std::string debugInfo);
|
||||
static void drawLine(Vector2D srcpt, Vector2D destpt, int red, int green, int blue);
|
||||
bool running() { return isRunning; }
|
||||
// static void AddTile(int srcX, int srcY, int xpos, int ypos);
|
||||
|
Loading…
Reference in New Issue
Block a user