zongors-universe-machine/docs/old/project-example-v5/src/client.ztl

94 lines
1.7 KiB
Plaintext

use "common.ztl";
fn main (argc num, argv str) num {
let screen_width = 800;
let screen_height = 450;
let username = argv[0];
let password = argv[1];
let server = 9p("localhost:25565");
let me = Player(
server,
username,
Vec(0.0, 1.0, 2.0),
purple
);
let players = me.login(password);
let camera = Camera3D(
"CAMERA_PERSPECTIVE",
45.0,
Vec(0.0, 1.0, 0.0),
Vec(me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
target_fps(60);
while ( not window_should_close() ) {
let player_updated = false;
if (key_down(KEY_RIGHT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_RIGHT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_LEFT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_DOWN)) {
me.pos.z = (me.pos.z + 0.2);
player_updated = true;
}
if (key_down(KEY_UP)) {
me.pos.z = (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_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();
}
me.logout();
close_window();
return 0;
}