92 lines
1.8 KiB
Plaintext
92 lines
1.8 KiB
Plaintext
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;
|
|
};
|
|
|