forked from gameprogcpp/code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTile.cpp
More file actions
57 lines (52 loc) · 1.26 KB
/
Tile.cpp
File metadata and controls
57 lines (52 loc) · 1.26 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
55
56
57
// ----------------------------------------------------------------
// From Game Programming in C++ by Sanjay Madhav
// Copyright (C) 2017 Sanjay Madhav. All rights reserved.
//
// Released under the BSD License
// See LICENSE in root directory for full details.
// ----------------------------------------------------------------
#include "Tile.h"
#include "SpriteComponent.h"
#include "Game.h"
Tile::Tile(class Game* game): Actor(game), mParent(nullptr), mF(0.0f), mG(0.0f), mH(0.0f), mBlocked(false), pSprite(nullptr), mTileState(EDefault), mSelected(false)
{
pSprite = new SpriteComponent(this);
UpdateTexture();
}
void Tile::SetTileState(TileState state)
{
mTileState = state;
UpdateTexture();
}
void Tile::ToggleSelect()
{
mSelected = !mSelected;
UpdateTexture();
}
void Tile::UpdateTexture()
{
std::string text;
switch (mTileState)
{
case EStart:
text = "Assets/TileTan.png";
break;
case EBase:
text = "Assets/TileGreen.png";
break;
case EPath:
if (mSelected)
text = "Assets/TileGreySelected.png";
else
text = "Assets/TileGrey.png";
break;
case EDefault:
default:
if (mSelected)
text = "Assets/TileBrownSelected.png";
else
text = "Assets/TileBrown.png";
break;
}
pSprite->SetTexture(GetGame()->GetTexture(text));
}