Added Game_World_Player and dying/respawning.
This commit is contained in:
@@ -92,21 +92,15 @@ static void state_tick(Presentation_State *state) {
|
||||
.left = IsKeyPressed(KEY_LEFT) || IsKeyPressed(KEY_A)
|
||||
};
|
||||
|
||||
Locally_Controlled_Player *player = &instance->locally_controlled_players[0];
|
||||
|
||||
if(!simulation_input_equal(input, player->prev_input)) {
|
||||
if(!simulation_input_empty(input)) {
|
||||
game_instance_push_local_input(instance, 0, input);
|
||||
player->prev_input = input;
|
||||
}
|
||||
}
|
||||
else if(instance->amount_of_local_players > 1) {
|
||||
for(uint8_t i = 0; i < instance->amount_of_local_players; i++) {
|
||||
Simulation_Game_Input input = gather_input_for_local_player(i);
|
||||
Locally_Controlled_Player *player = &instance->locally_controlled_players[i];
|
||||
|
||||
if(!simulation_input_equal(input, player->prev_input)) {
|
||||
if(!simulation_input_empty(input)) {
|
||||
game_instance_push_local_input(instance, i, input);
|
||||
player->prev_input = input;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,11 +115,8 @@ static void state_tick(Presentation_State *state) {
|
||||
for(uint16_t i = 0; i < instance->amount_of_local_players; i++) {
|
||||
// Pop input from local-player's input_queue and set the player's input to it, if we have one.
|
||||
Simulation_Game_Input input = {0};
|
||||
if(game_instance_pop_local_input(instance, i, &input)) {
|
||||
// TODO: SS - We should probably check if this input is invalid for the snake. (pressing "go right" when going left, for example.)
|
||||
// If it is invalid, the next input in the queue should be tried.
|
||||
game_session_set_player_input(session, i, input);
|
||||
}
|
||||
game_instance_pop_local_input(instance, i, &input);
|
||||
game_session_set_player_input(session, i, input);
|
||||
}
|
||||
|
||||
game_session_tick(session);
|
||||
@@ -237,8 +228,8 @@ static void state_render(Presentation_State *state) {
|
||||
|
||||
Color tint = (Color) { 255, 255, 255, 255 };
|
||||
// Set the snake's tint based on player-index.
|
||||
for(uint16_t i = 0; i < sim_world->max_players; i++) {
|
||||
Simulation_Player *player = &sim_world->players[i];
|
||||
for(uint16_t i = 0; i < world->max_players; i++) {
|
||||
Game_World_Player *player = &world->players[i];
|
||||
if(!player->active) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user