store current movements as array
This commit is contained in:
parent
7f3185b26a
commit
e839c1283a
32
src/game.d
32
src/game.d
@ -6,7 +6,8 @@ enum
|
|||||||
MOVE_LEFT,
|
MOVE_LEFT,
|
||||||
MOVE_RIGHT,
|
MOVE_RIGHT,
|
||||||
MOVE_UP,
|
MOVE_UP,
|
||||||
MOVE_DOWN
|
MOVE_DOWN,
|
||||||
|
MOVE_COUNT
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Player
|
struct Player
|
||||||
@ -31,33 +32,19 @@ public:
|
|||||||
}
|
}
|
||||||
void handle_move_event(int type, bool active)
|
void handle_move_event(int type, bool active)
|
||||||
{
|
{
|
||||||
final switch (type)
|
m_movements[type] = active;
|
||||||
{
|
|
||||||
case MOVE_LEFT:
|
|
||||||
m_left = active;
|
|
||||||
break;
|
|
||||||
case MOVE_RIGHT:
|
|
||||||
m_right = active;
|
|
||||||
break;
|
|
||||||
case MOVE_UP:
|
|
||||||
m_up = active;
|
|
||||||
break;
|
|
||||||
case MOVE_DOWN:
|
|
||||||
m_down = active;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
void update(uint ms)
|
void update(uint ms)
|
||||||
{
|
{
|
||||||
while (ms > (m_last_tick_ms + TICK_MS))
|
while (ms > (m_last_tick_ms + TICK_MS))
|
||||||
{
|
{
|
||||||
if (m_left)
|
if (m_movements[MOVE_LEFT])
|
||||||
m_players[m_pindex].x -= MOVE_PER_TICK;
|
m_players[m_pindex].x -= MOVE_PER_TICK;
|
||||||
if (m_right)
|
if (m_movements[MOVE_RIGHT])
|
||||||
m_players[m_pindex].x += MOVE_PER_TICK;
|
m_players[m_pindex].x += MOVE_PER_TICK;
|
||||||
if (m_up)
|
if (m_movements[MOVE_UP])
|
||||||
m_players[m_pindex].y += MOVE_PER_TICK;
|
m_players[m_pindex].y += MOVE_PER_TICK;
|
||||||
if (m_down)
|
if (m_movements[MOVE_DOWN])
|
||||||
m_players[m_pindex].y -= MOVE_PER_TICK;
|
m_players[m_pindex].y -= MOVE_PER_TICK;
|
||||||
m_last_tick_ms += TICK_MS;
|
m_last_tick_ms += TICK_MS;
|
||||||
m_tick++;
|
m_tick++;
|
||||||
@ -65,10 +52,7 @@ public:
|
|||||||
}
|
}
|
||||||
Player[] get_players() { return m_players; }
|
Player[] get_players() { return m_players; }
|
||||||
protected:
|
protected:
|
||||||
bool m_left;
|
bool m_movements[MOVE_COUNT];
|
||||||
bool m_right;
|
|
||||||
bool m_up;
|
|
||||||
bool m_down;
|
|
||||||
uint m_tick;
|
uint m_tick;
|
||||||
uint m_last_tick_ms;
|
uint m_last_tick_ms;
|
||||||
Player[2] m_players;
|
Player[2] m_players;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user