Skip to content

Commit 106975b

Browse files
Merge remote-tracking branch 'origin/master'
2 parents 8c7af63 + 4cdb414 commit 106975b

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from pyray import *
2+
from enum import Enum, auto
3+
4+
SCREEN_WIDTH = 800
5+
SCREEN_HEIGHT = 450
6+
7+
8+
class GameScreen(Enum):
9+
LOGO = auto()
10+
TITLE = auto()
11+
GAMEPLAY = auto()
12+
ENDING = auto()
13+
14+
15+
def main():
16+
init_window(SCREEN_WIDTH, SCREEN_HEIGHT,
17+
"raylib [core] example - basic screen manager")
18+
19+
frame_count = 0
20+
set_target_fps(60)
21+
current_screen = GameScreen.LOGO
22+
23+
while not window_should_close():
24+
25+
# State machine
26+
if current_screen == GameScreen.LOGO:
27+
frame_count += 1
28+
if frame_count > 120:
29+
current_screen = GameScreen.TITLE
30+
elif current_screen == GameScreen.TITLE:
31+
if is_key_pressed(KEY_ENTER) or is_gesture_detected(GESTURE_TAP):
32+
current_screen = GameScreen.GAMEPLAY
33+
elif current_screen == GameScreen.GAMEPLAY:
34+
if is_key_pressed(KEY_ENTER) or is_gesture_detected(GESTURE_TAP):
35+
current_screen = GameScreen.ENDING
36+
elif current_screen == GameScreen.ENDING:
37+
if is_key_pressed(KEY_ENTER) or is_gesture_detected(GESTURE_TAP):
38+
current_screen = GameScreen.TITLE
39+
40+
begin_drawing()
41+
clear_background(RAYWHITE)
42+
if current_screen == GameScreen.LOGO:
43+
draw_text("LOGO SCREEN", 20, 20, 40, LIGHTGRAY)
44+
draw_text("WAIT for 2 SECONDS...", 290, 220, 20, GRAY)
45+
elif current_screen == GameScreen.TITLE:
46+
draw_rectangle(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, GREEN)
47+
draw_text("TITLE SCREEN", 20, 20, 40, DARKGREEN)
48+
draw_text("PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN", 120, 220, 20, DARKGREEN)
49+
elif current_screen == GameScreen.GAMEPLAY:
50+
draw_rectangle(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, PURPLE)
51+
draw_text("GAMEPLAY SCREEN", 20, 20, 40, MAROON)
52+
draw_text("PRESS ENTER or TAP to JUMP to ENDING SCREEN", 120, 220, 20, MAROON)
53+
elif current_screen == GameScreen.ENDING:
54+
draw_rectangle(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, BLUE)
55+
draw_text("ENDING SCREEN", 20, 20, 40, DARKBLUE)
56+
draw_text("PRESS ENTER or TAP to JUMP to TITLE SCREEN", 120, 220, 20, DARKBLUE)
57+
end_drawing()
58+
close_window()
59+
60+
61+
if __name__ == '__main__':
62+
main()

0 commit comments

Comments
 (0)