zongors-universe-machine/old/idea.zl0b

105 lines
2.0 KiB
Plaintext

:vec {
:x f32
:y f32
:z f32
} type
:color {
:r i8
:g i8
:b i8
} type
:player {
:username str
:pos vec
:color color
} type
:login {
:player 0 check
:str 1 check
(* do the login here *)
} sub
255 255 0 :purple color
:main {
800 :screen_width i32
450 :screen_height i32
argv split
:username str
:password str
username 0.0 f32 1.0 f32 2.0 f32 vec purple :me player
password me login :players set
() me.pos.x push
me.pos.y 10.0 add push
me.pos.z 10.0 add push (* Camera pos *)
me.pos (* Camera looking at point *)
0.0 1.0 0.0 vec (* Camera up vector(rotation towards target) *)
45.0 f32 (* Camera field - of - view Y *)
:CAMERA_PERSPECTIVE (* Camera projection type *)
:camera Camera3D
screen_width screen_height "zwl client : raylib" init_window
60 set_target_fps
(* Main game loop *)
{
:KEY_RIGHT is_key_down {
0.2 me.pos.x add :me.pos.x set
true :player_updated set
} ifyes
:KEY_LEFT is_key_down {
0.2 me.pos.x sub :me.pos.x set
true :player_updated set
} ifyes
:KEY_DOWN is_key_down {
0.2 me.pos.z add :me.pos.z set
true :player_updated set
} ifyes
:KEY_UP is_key_down {
0.2 me.pos.z sub :me.pos.z set
true :player_updated set
} ifyes
camera me sync_camera
player_updated choose {
me move :players set
} ifyes {
me ping :players set
} ifno
begin_drawing
RAYWHITE clear_background
camera begin_mode_3d
(* Draw floor *)
30 1.0 draw_grid
me.pos 0.5 0.5 0.5 me.apperance draw_cube
players :player {
player.pos 0.5 0.5 0.5 player.apperance draw_cube
} map
end_mode_3d
end_drawing
}
{ window_should_close not } while (* Detect window close button or ESC key *)
close_window (*Close window and OpenGL context *)
} sub
main