added logo to main screen and set up the game to start from the logo screen

This commit is contained in:
Stefan Stefanov 2024-02-10 16:09:04 +02:00
parent 31de4ca06c
commit 78af71a33a
5 changed files with 66 additions and 54 deletions

View file

@ -4,7 +4,6 @@ import "core:log"
import rl "vendor:raylib"
GameScreen :: enum {
LOGO,
TITLE,
GAMEPLAY,
ENDING,
@ -15,15 +14,6 @@ update_screen :: proc(state: ^GameState) {
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
screen = .TITLE
log.info("Updated screen enum", screen)
}
}
case .TITLE:
{
// Press enter to change to GAMEPLAY screen
@ -56,24 +46,32 @@ update_screen :: proc(state: ^GameState) {
}
draw_screen :: proc(state: ^GameState) {
using state
{
switch state.screen {
case .LOGO:
{
// TODO: Draw LOGO screen here!
rl.DrawText("SPACE INVADERS", 220, 220, 40, rl.GREEN)
rl.DrawText("WAIT for 2 SECONDS...", 290, 400, 20, rl.GRAY)
}
case .TITLE:
{
// TODO: Draw TITLE screen here!
rl.DrawRectangle(0, 0, state.screen_width, state.screen_height, rl.GREEN)
rl.DrawText("TITLE SCREEN", 20, 20, 40, rl.DARKGREEN)
rl.DrawText(
"PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN",
120,
220,
rl.DrawRectangle(0, 0, state.screen_width, state.screen_height, rl.WHITE)
rl.DrawTexturePro(
texture_atlas,
{LOGO_TO[0].x, LOGO_TO[0].y, LOGO_TO[1].x, LOGO_TO[1].y},
{
f32(screen_width / GLOBAL_SPRITE_SCALE) / 2,
f32(screen_height / GLOBAL_SPRITE_SCALE) / 2,
LOGO_TO[1].x * 4,
LOGO_TO[1].y * 4,
},
{LOGO_TO[1].x * 2, LOGO_TO[1].y * 2},
0,
rl.GREEN,
)
text : cstring = "PRESS ENTER TO START GAME"
size := rl.MeasureText(text, 20)
rl.DrawText(
text,
(screen_width/4) - (size/2),
(screen_height / 2)- 20,
20,
rl.DARKGREEN,
)