blob: c496db83bbf90f1e4e9ef7d852d3aa05f15987da (
plain)
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
|
#pragma once
#include "bitmap.h"
#include "util.h"
class Level;
class Train {
public:
explicit Train(Level& level)
: m_level(level) { }
void update();
void draw(Bitmap&, int, int);
void setPosition(int x, int y);
Point2D getSpritePosition() const;
void setSpeed(float speed) { m_speed = speed; };
// Add a vehicle to the end of this train
void addVehicle(Train*);
private:
void findDirection();
void findNextTile();
Train* m_next { nullptr };
Train* m_prev { nullptr };
Level& m_level;
int x { 0 }, y { 0 };
float m_speed { 0.f };
float m_acceleration { 0.98f };
float m_progress { 0.f };
Direction m_dir { North };
int m_nextX { 0 }, m_nextY { 0 };
};
|