-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGameNonActiveObject.cpp
More file actions
54 lines (42 loc) · 1.49 KB
/
GameNonActiveObject.cpp
File metadata and controls
54 lines (42 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "GameNonActiveObject.h"
#include "GameEngine.h"
GameNonActiveObject::GameNonActiveObject()
{
}
GameNonActiveObject::GameNonActiveObject(float x, float y, int _type, std::string imageFilePath)
{
type = _type;
myTexture = ImageManager::getInstance()->loadImage(imageFilePath.c_str());
myTexture.CreateMaskFromColor(sf::Color(255,0,255));
myTexture.SetSmooth(false);
int textureHeight = myTexture.GetHeight();
mySprite.SetImage(myTexture);
mySprite.SetScale( 1, 1 );
mySprite.SetPosition( x, y);
mySprite.SetCenter((float)16,(float)(textureHeight/2));
mySprite.setBoxMask(sf::IntRect(2, textureHeight - 8 ,30,textureHeight));
mySprite.setType("wall");
}
void GameNonActiveObject::UpdateSystem()
{
GameEngine::getInstance()->AddToCollisionQuadtree(&mySprite);
}
void GameNonActiveObject::EventHandling()
{
depth = (int)(-mySprite.GetPosition().y);
}
void GameNonActiveObject::Display(sf::RenderWindow * window)
{
window->Draw(mySprite);
if(GameEngine::getInstance()->devmode)
{
if ( GameEngine::getInstance()->DetectCollision(&mySprite) )
((BoxMask*)mySprite.getCollisionMask())->Display(window,
sf::Vector2f(mySprite.GetPosition().x-mySprite.GetCenter().x,
mySprite.GetPosition().y-mySprite.GetCenter().y), sf::Color(255,0,0));
else
((BoxMask*)mySprite.getCollisionMask())->Display(window,
sf::Vector2f(mySprite.GetPosition().x-mySprite.GetCenter().x,
mySprite.GetPosition().y-mySprite.GetCenter().y));
}
}