diff --git a/LibDQt/LibDQt.pro b/LibDQt/LibDQt.pro index 5e57ee7..6db3410 100644 --- a/LibDQt/LibDQt.pro +++ b/LibDQt/LibDQt.pro @@ -5,7 +5,8 @@ LIBS += -lGL \ -ltinyxml \ -lGLU \ -lz \ - -ltinyxml + -ltinyxml \ + -lSDL_mixer win32: { LIBS -= -lGL \ -lGLU @@ -13,7 +14,8 @@ win32: { -luser32 \ -lgdi32 \ -lopengl32 \ - -lglu32 + -lglu32 \ + -lSDL_mixer } HEADERS += ../src/Actor/Player.h \ ../src/Collision/AABB.h \ @@ -50,7 +52,8 @@ HEADERS += ../src/Actor/Player.h \ ../src/TMXParser/TmxLayer.h \ ../src/TMXParser/Tmx.h \ ../src/TMXParser/base64.h \ - ../src/Collision/TileCollision.h + ../src/Collision/TileCollision.h \ + ../src/Actor/NPC.h SOURCES += ../src/Actor/Player.cpp \ ../src/Collision/AABB.cpp \ ../src/Global/Globals.cpp \ @@ -79,4 +82,6 @@ SOURCES += ../src/Actor/Player.cpp \ ../src/TMXParser/TmxMap.cpp \ ../src/TMXParser/TmxLayer.cpp \ ../src/TMXParser/TmxImage.cpp \ - ../src/TMXParser/base64.cpp + ../src/TMXParser/base64.cpp \ + ../src/Actor/NPC.cpp +OTHER_FILES += diff --git a/src/Actor/NPC.cpp b/src/Actor/NPC.cpp new file mode 100644 index 0000000..f7a797f --- /dev/null +++ b/src/Actor/NPC.cpp @@ -0,0 +1,17 @@ +#include "NPC.h" + +NPC::NPC(void) { + _NPC->CreateAABBFromSprite("../Data/Img/Player"); +} + +NPC::~NPC(void) { + delete _NPC; +} + +void NPC::Update(void) { + +} + +void NPC::Render(void) { + //_NPC-> +} diff --git a/src/Actor/NPC.h b/src/Actor/NPC.h new file mode 100644 index 0000000..e5064e3 --- /dev/null +++ b/src/Actor/NPC.h @@ -0,0 +1,14 @@ +#pragma once +#include "../Collision/AABB.h" + +class NPC { +public: + NPC(void); + ~NPC(void); + + void Update(void); + void Render(void); + +private: + AABB* _NPC; +}; diff --git a/src/Actor/Player.cpp b/src/Actor/Player.cpp index 0c0d634..a95cca1 100644 --- a/src/Actor/Player.cpp +++ b/src/Actor/Player.cpp @@ -63,6 +63,10 @@ void Player::ActorCollisionTest(void) { } +bool Player::GetInBlueCollision(void) { + return(_blueCollision && _preventMovement != NONE); +} + void Player::ProcessEvents(void) { x = _player->GetX(); y = _player->GetY(); diff --git a/src/Actor/Player.h b/src/Actor/Player.h index 8644d83..52c3847 100644 --- a/src/Actor/Player.h +++ b/src/Actor/Player.h @@ -10,6 +10,21 @@ class Sprite; // We will derive from an Actor class at some point. class Player { public: + // Facing enum controls which spritr to render. + enum Facing { + LEFT, + RIGHT, + NONE + }; + + // Control the current state the character is in. + enum Status { + STANDING = 0, + WALKING, + HURT, + DEAD, + }; + Player(void); ~Player(void); @@ -47,6 +62,8 @@ private: bool _notColliding; bool _blueCollision; + Facing _preventMovement; + AABB* _collisionBound; AABB* _environmentCollisionBound; }; diff --git a/src/Collision/AABB.cpp b/src/Collision/AABB.cpp index babd81e..0130a5a 100644 --- a/src/Collision/AABB.cpp +++ b/src/Collision/AABB.cpp @@ -113,3 +113,7 @@ void AABB::CreateAABBFromSprite(const char* filename) { delete _sprite; _sprite = 0; } + +void AABB::Render(void) { + // FUCK YOU KonoM!! +} diff --git a/src/Collision/AABB.h b/src/Collision/AABB.h index 69e2e75..51889cd 100644 --- a/src/Collision/AABB.h +++ b/src/Collision/AABB.h @@ -33,6 +33,8 @@ public: bool InCollision(AABB* otherAABB); void CreateAABBFromSprite(const char* filename); + void Render(void); + private: Vec2 _min; Vec2 _max;