|
- with raylib;
- use raylib;
-
- procedure xhampion is
-
- type monster_index is (
- afrit,
- brown_chaos_serpent,
- centaur,
- dark_bishop,
- death_wyvern,
- ettin,
- green_chaos_serpent,
- maulotaur,
- pig,
- reiver,
- stalker,
- wendigo
- );
-
- view : aliased camera_3d := (
- position => (0.0, 0.0, 0.0),
- target => (0.0, 0.0, 1.0),
- up => (0.0, 1.0, 0.0),
- field_of_view => 90.0,
- projection => camera_perspective
- );
-
- model_count : natural := 2;
- model_array : array (0 .. 1) of model;
-
- texture_count : natural := 2;
- texture_array : array (0 .. 1) of texture;
-
- movement : vector_3d := (0.0, 0.0, 0.0);
- rotation : vector_3d := (0.0, 0.0, 0.0);
-
- dd : vector_2d := (0.0, 0.0);
-
- begin
-
- open_window (1800, 900, "Xhampion" & character'val (0));
-
- disable_cursor;
-
- set_target_fps (60);
-
- set_trace_log_level (log_none);
-
- model_array (0) := load_model ("./sprite/wall.obj" & character'val (0));
- model_array (1) := load_model ("./sprite/meme.obj" & character'val (0));
-
- texture_array (0) := load_texture ("./sprite/hand.png" & character'val (0));
-
- gameplay: loop
- exit when window_should_close;
-
- if is_key_pressed (key_w) then movement.x := movement.x + 0.1;
- elsif is_key_pressed (key_s) then movement.x := movement.x - 0.1;
- elsif is_key_pressed (key_a) then movement.y := movement.y - 0.1;
- elsif is_key_pressed (key_d) then movement.y := movement.y + 0.1;
- end if;
-
- dd := get_mouse_delta;
-
- rotation.x := dd.x;
-
- update_camera_pro (view'access, movement, rotation, 1.0);
-
- begin_drawing;
-
- clear_background (sky_blue);
-
- begin_mode_3d (view);
-
- for i in 0 .. 40
- loop
- for j in 0 .. 40
- loop
- draw_model (model_array (0), (float (i) * (-4.0), -1.0, float (j) * (-4.0)), 2.0, white);
- draw_model (model_array (1), (float (i) * (-4.0), -1.0, float (j) * (-4.0)), 2.0, white);
- end loop;
- end loop;
-
- end_mode_3d;
-
- draw_texture (texture_array (0), (get_screen_width - 960) / 2, get_screen_height - 600, white);
-
- draw_fps (0, 0);
-
- end_drawing;
- end loop gameplay;
-
- close_window;
-
- end xhampion;
|