-
Notifications
You must be signed in to change notification settings - Fork 396
Expand file tree
/
Copy pathTile.cpp
More file actions
66 lines (61 loc) · 1.26 KB
/
Tile.cpp
File metadata and controls
66 lines (61 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
58
59
60
61
62
63
64
65
66
// ----------------------------------------------------------------
// 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)
,f(0.0f)
,g(0.0f)
,h(0.0f)
,mBlocked(false)
,mSprite(nullptr)
,mTileState(EDefault)
,mSelected(false)
{
mSprite = 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;
}
mSprite->SetTexture(GetGame()->GetTexture(text));
}