1use macroquad::prelude::*;
2
3#[macroquad::main("3D")]
4async fn main() {
5 let rust_logo = load_texture("examples/rust.png").await.unwrap();
6 let ferris = load_texture("examples/ferris.png").await.unwrap();
7
8 loop {
9 clear_background(LIGHTGRAY);
10
11 set_camera(&Camera3D {
14 position: vec3(-20., 15., 0.),
15 up: vec3(0., 1., 0.),
16 target: vec3(0., 0., 0.),
17 ..Default::default()
18 });
19
20 draw_grid(20, 1., BLACK, GRAY);
21
22 draw_cube_wires(vec3(0., 1., -6.), vec3(2., 2., 2.), DARKGREEN);
23 draw_cube_wires(vec3(0., 1., 6.), vec3(2., 2., 2.), DARKBLUE);
24 draw_cube_wires(vec3(2., 1., 2.), vec3(2., 2., 2.), YELLOW);
25
26 draw_plane(vec3(-8., 0., -8.), vec2(5., 5.), Some(&ferris), WHITE);
27
28 draw_cube(
29 vec3(-5., 1., -2.),
30 vec3(2., 2., 2.),
31 Some(&rust_logo),
32 WHITE,
33 );
34 draw_cube(vec3(-5., 1., 2.), vec3(2., 2., 2.), Some(&ferris), WHITE);
35 draw_cube(vec3(2., 0., -2.), vec3(0.4, 0.4, 0.4), None, BLACK);
36
37 draw_sphere(vec3(-8., 0., 0.), 1., None, BLUE);
38
39 set_default_camera();
42 draw_text("WELCOME TO 3D WORLD", 10.0, 20.0, 30.0, BLACK);
43
44 next_frame().await
45 }
46}