From 68ab786d8aa48ab3890af6e04fecb5f7672f04cc Mon Sep 17 00:00:00 2001 From: zongor Date: Sat, 7 Dec 2024 18:59:00 -0500 Subject: [PATCH] c like idea --- idea.zl3 | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 idea.zl3 diff --git a/idea.zl3 b/idea.zl3 new file mode 100644 index 0000000..99beb80 --- /dev/null +++ b/idea.zl3 @@ -0,0 +1,100 @@ +type Color { + i8 r; + i8 g; + i8 b; +} + +type Player { + str username; + f32[] pos; + Color color; +} + +void login(Player p, str password) { + (* do the login here *) +} + +Color purple(255, 255, 0); + +void main(int argc, str[] argv) { + i32 screen_width = 800; + i32 screen_height = 450; + + str username = argv[0]; + str password = argv[1]; + + Player me( + username, + [0.0, 1.0, 2.0], + purple + ); + Player[] players = login(me, password); + + Camera3D camera( + [0.0, 1.0, 0.0] + 45.0, + :CAMERA_PERSPECTIVE, + [ + me.pos.x + 10.0, + me.pos.y + 10.0, + me.pos.z + ] + [me.pos] + ); + + init_window("zwl client : raylib", screen_width, screen_height); + set_target_fps(60) + + (* Main game loop *) + while ( .not. window_should_close ) { + + if (is_key_down(:KEY_RIGHT)) { + me.pos.x = me.pos.x + 0.2; + player_updated = true; + } + + if (is_key_down(:KEY_LEFT)) { + me.pos.x = me.pos.x - 0.2; + player_updated = true; + } + + if (is_key_down(:KEY_DOWN)) { + me.pos.z = me.pos.z + 0.2; + player_updated = true; + } + + if (is_key_down(:KEY_UP)) { + me.pos.z = me.pos.z - 0.2; + player_updated = true; + } + + sync_camera(camera, me); + + if (player_updated) { + players = move(me); + } else { + players = ping(me); + } + + begin_drawing(); + clear_background(:RAYWHITE); + + begin_mode_3d(camera); + + (* Draw floor *) + draw_grid(30, 1.0); + + draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance); + + for (player in players) { + draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance); + } + + end_mode_3d(); + + end_drawing(); + } + + logout(me); + close_window(); (*Close window and OpenGL context *) +}