add more ideas
This commit is contained in:
parent
68ab786d8a
commit
be7a3e731b
|
@ -0,0 +1,105 @@
|
||||||
|
: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
|
4
idea.zl2
4
idea.zl2
|
@ -96,8 +96,8 @@ fn :main {
|
||||||
|
|
||||||
draw_cube [acc me :pos] 0.5 0.5 0.5 [acc me :apperance]
|
draw_cube [acc me :pos] 0.5 0.5 0.5 [acc me :apperance]
|
||||||
|
|
||||||
map players {
|
map :player players {
|
||||||
draw_cube [acc @this :pos] 0.5 0.5 0.5 [acc @this apperance]
|
draw_cube [acc player :pos] 0.5 0.5 0.5 [acc player apperance]
|
||||||
}
|
}
|
||||||
|
|
||||||
end_mode_3d
|
end_mode_3d
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
type :Vec {
|
||||||
|
f32 :x
|
||||||
|
f32 :y
|
||||||
|
f32 :z
|
||||||
|
}
|
||||||
|
|
||||||
|
type :Color {
|
||||||
|
i8 :r
|
||||||
|
i8 :g
|
||||||
|
i8 :b
|
||||||
|
}
|
||||||
|
|
||||||
|
type :Player {
|
||||||
|
str :username
|
||||||
|
Vec :pos
|
||||||
|
Color :color
|
||||||
|
}
|
||||||
|
|
||||||
|
fn :login {
|
||||||
|
Player
|
||||||
|
str
|
||||||
|
|
||||||
|
(* do the login here *)
|
||||||
|
}
|
||||||
|
|
||||||
|
Color :purple {255 255 0}
|
||||||
|
|
||||||
|
fn :main {
|
||||||
|
i32 :screen_width 800
|
||||||
|
i32 :screen_height 450
|
||||||
|
|
||||||
|
split argv
|
||||||
|
str :username
|
||||||
|
str :password
|
||||||
|
|
||||||
|
Player :me {
|
||||||
|
username
|
||||||
|
vec {0.0 1.0 2.0}
|
||||||
|
purple
|
||||||
|
}
|
||||||
|
Player() :players { login me password }
|
||||||
|
|
||||||
|
Camera3D :camera {
|
||||||
|
vec {0.0 1.0 0.0}
|
||||||
|
i32 45.0
|
||||||
|
atom :CAMERA_PERSPECTIVE
|
||||||
|
vec {
|
||||||
|
add acc (:me :pos :x) 10.0
|
||||||
|
add acc (:me :pos :y) 10.0
|
||||||
|
acc (:me :pos :z)
|
||||||
|
}
|
||||||
|
vec {acc 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} {
|
||||||
|
mut (:me :pos :x) add acc me :pos :x 0.2
|
||||||
|
set :player_updated true
|
||||||
|
}
|
||||||
|
|
||||||
|
if {is_key_down :KEY_LEFT} {
|
||||||
|
mut (:me :pos :x) sub acc me :pos :x 0.2
|
||||||
|
set :player_updated true
|
||||||
|
}
|
||||||
|
|
||||||
|
if {is_key_down :KEY_DOWN} {
|
||||||
|
mut (:me :pos :z) add acc me :pos :z 0.2
|
||||||
|
set :player_updated true
|
||||||
|
}
|
||||||
|
|
||||||
|
if {is_key_down :KEY_UP} {
|
||||||
|
mut (:me :pos :z) sub acc me :pos :z 0.2
|
||||||
|
set :player_updated true
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_camera camera me
|
||||||
|
|
||||||
|
if (player_updated) {
|
||||||
|
set :players move me
|
||||||
|
} else {
|
||||||
|
set :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
|
||||||
|
|
||||||
|
map :player 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 *)
|
||||||
|
|
||||||
|
set :players logout me
|
||||||
|
close_window (*Close window and OpenGL context *)
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
20
idea.zl3
20
idea.zl3
|
@ -1,3 +1,9 @@
|
||||||
|
type Vec {
|
||||||
|
f32 x;
|
||||||
|
f32 y;
|
||||||
|
f32 z;
|
||||||
|
}
|
||||||
|
|
||||||
type Color {
|
type Color {
|
||||||
i8 r;
|
i8 r;
|
||||||
i8 g;
|
i8 g;
|
||||||
|
@ -6,7 +12,7 @@ type Color {
|
||||||
|
|
||||||
type Player {
|
type Player {
|
||||||
str username;
|
str username;
|
||||||
f32[] pos;
|
Vec pos;
|
||||||
Color color;
|
Color color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,28 +31,28 @@ void main(int argc, str[] argv) {
|
||||||
|
|
||||||
Player me(
|
Player me(
|
||||||
username,
|
username,
|
||||||
[0.0, 1.0, 2.0],
|
Vec(0.0, 1.0, 2.0),
|
||||||
purple
|
purple
|
||||||
);
|
);
|
||||||
Player[] players = login(me, password);
|
Player[] players = login(me, password);
|
||||||
|
|
||||||
Camera3D camera(
|
Camera3D camera(
|
||||||
[0.0, 1.0, 0.0]
|
Vec(0.0, 1.0, 0.0),
|
||||||
45.0,
|
45.0,
|
||||||
:CAMERA_PERSPECTIVE,
|
:CAMERA_PERSPECTIVE,
|
||||||
[
|
Vec(
|
||||||
me.pos.x + 10.0,
|
me.pos.x + 10.0,
|
||||||
me.pos.y + 10.0,
|
me.pos.y + 10.0,
|
||||||
me.pos.z
|
me.pos.z
|
||||||
]
|
),
|
||||||
[me.pos]
|
me.pos
|
||||||
);
|
);
|
||||||
|
|
||||||
init_window("zwl client : raylib", screen_width, screen_height);
|
init_window("zwl client : raylib", screen_width, screen_height);
|
||||||
set_target_fps(60)
|
set_target_fps(60)
|
||||||
|
|
||||||
(* Main game loop *)
|
(* Main game loop *)
|
||||||
while ( .not. window_should_close ) {
|
while ( .not. window_should_close() ) {
|
||||||
|
|
||||||
if (is_key_down(:KEY_RIGHT)) {
|
if (is_key_down(:KEY_RIGHT)) {
|
||||||
me.pos.x = me.pos.x + 0.2;
|
me.pos.x = me.pos.x + 0.2;
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
type Vec {
|
||||||
|
f32[x, y, z];
|
||||||
|
}
|
||||||
|
|
||||||
|
type Color {
|
||||||
|
i8[r, g, b];
|
||||||
|
}
|
||||||
|
|
||||||
|
type Player {
|
||||||
|
str username;
|
||||||
|
Vec pos;
|
||||||
|
Color color;
|
||||||
|
}
|
||||||
|
|
||||||
|
void login(Player p, str password) {
|
||||||
|
(* do the login here *)
|
||||||
|
}
|
||||||
|
|
||||||
|
(* Color purple = [255, 255, 0]; *)
|
||||||
|
|
||||||
|
Color purple(r=255, g=255, b=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=username,
|
||||||
|
pos=[0.0, 1.0, 2.0],
|
||||||
|
color=purple
|
||||||
|
);
|
||||||
|
Player[] players = login(me, password);
|
||||||
|
|
||||||
|
Camera3D camera(
|
||||||
|
up=[0.0, 1.0, 0.0]
|
||||||
|
fov=45.0,
|
||||||
|
mode=:CAMERA_PERSPECTIVE,
|
||||||
|
pos=[
|
||||||
|
me.pos.x + 10.0,
|
||||||
|
me.pos.y + 10.0,
|
||||||
|
me.pos.z
|
||||||
|
]
|
||||||
|
point_at=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 *)
|
||||||
|
}
|
Loading…
Reference in New Issue