use "common.ztl"; Player[] login (9pc s Player p str password) { s.auth(p.username, password); return s.read("players"); }; i32 main (i32 argc str[] argv) { const i32 screen_width = 800; const i32 screen_height = 450; str username = argv[0]; str password = argv[1]; Player me = { username: username, pos: {0.0 1.0 2.0}, apperance: purple, }; Player[] players = me.login(password); Camera3D camera = { up: {0.0 1.0 0.0}, fov: 45.0, type: CAMERA_PERSPECTIVE, pos: { me.pos.x + 10.0, me.pos.y + 10.0, me.pos.z, }, target: 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 += 0.2; player_updated = true; }; if (is_key_down(KEY_LEFT)) { me.pos.x -= 0.2; player_updated = true; }; if (is_key_down(KEY_DOWN)) { me.pos.z += 0.2; player_updated = true; }; if (is_key_down(KEY_UP)) { me.pos.z -= 0.2; player_updated = true; }; me.sync_camera(camera); if (player_updated) { players = me.move(); } else { players = me.ping(); }; 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(); } /* Detect window close button or ESC key */ players = logout(me); close_window(); /* Close window and OpenGL context */ return 0; };