basic sprites working

This commit is contained in:
Stefan Stefanov 2024-02-09 22:06:25 +02:00
parent 178cf92f44
commit 348b4fd181
6 changed files with 216 additions and 63 deletions

View file

@ -12,26 +12,27 @@ GameScreen :: enum {
update_screen :: proc(state: ^GameState) {
using state
using state
switch screen {
case .LOGO:
{
// Wait for 2 seconds (120 frames) before jumping to TITLE screen
if (frame_counter > int(target_fps * 2)) {
previous_screen = screen
previous_screen = screen
screen = .TITLE
log.info("Updated screen enum", screen)
}
}
case .TITLE:
{
// Press enter to change to GAMEPLAY screen
// Press enter to change to GAMEPLAY screen
if (rl.IsKeyPressed(rl.KeyboardKey.ENTER)) {
previous_screen = screen
screen = .GAMEPLAY
previous_screen = screen
screen = .GAMEPLAY
log.info("Updated screen enum", screen)
}
reset_game = true
}
case .GAMEPLAY:
{
@ -39,19 +40,19 @@ update_screen :: proc(state: ^GameState) {
}
case .ENDING:
{
// Press enter to return to TITLE screen
// Press enter to return to TITLE screen
if (rl.IsKeyPressed(rl.KeyboardKey.ENTER)) {
previous_screen = screen
screen = .TITLE
previous_screen = screen
screen = .TITLE
log.info("Updated screen enum", screen)
}
}
}
if last_frame_screen != screen {
log.infof("Current screen: %v, previous screen: %v", screen, previous_screen)
}
last_frame_screen = screen
if last_frame_screen != screen {
log.infof("Current screen: %v, previous screen: %v", screen, previous_screen)
}
last_frame_screen = screen
}
draw_screen :: proc(state: ^GameState) {
@ -84,18 +85,16 @@ draw_screen :: proc(state: ^GameState) {
}
case .ENDING:
{
// TODO: Draw ENDING screen here!
rl.DrawRectangle(0, 0, state.screen_width, state.screen_height, rl.BLUE)
rl.DrawText("ENDING SCREEN", 20, 20, 40, rl.DARKBLUE)
rl.DrawText(
"PRESS ENTER or TAP to RETURN to TITLE SCREEN",
120,
220,
20,
rl.DARKBLUE,
)
draw_ending_screen(state)
}
}
}
}
draw_ending_screen :: proc(state: ^GameState) {
using state
// TODO: Draw ENDING screen here!
rl.DrawRectangle(0, 0, state.screen_width, state.screen_height, rl.BLACK)
rl.DrawText("Game End", 20, 20, 40, rl.WHITE)
rl.DrawText(rl.TextFormat("Player score: %d\nHighscore: %d", player_score, player_high_score), 120, 220, 20, rl.WHITE)
}