2023-11-18 18:06:43 -05:00
|
|
|
(scl 4)
|
|
|
|
|
|
|
|
(load "@lib/clang.l")
|
|
|
|
|
|
|
|
(clang "structs" '("-lraylib")
|
2023-11-18 20:03:18 -05:00
|
|
|
(DrawCube (pos w l h color) PilDrawCube NIL (cons (car pos) -1.0)
|
|
|
|
(cons (cadr pos) -1.0)
|
|
|
|
(cons (caddr pos) -1.0)
|
|
|
|
(cons w -1.0)
|
|
|
|
(cons l -1.0)
|
|
|
|
(cons h -1.0)
|
|
|
|
color)
|
|
|
|
(BeginMode3D (pos target) PilBeginMode3D NIL (cons (car pos) -1.0)
|
|
|
|
(cons (cadr pos) -1.0)
|
|
|
|
(cons (caddr pos) -1.0)
|
|
|
|
(cons (car target) -1.0)
|
|
|
|
(cons (cadr target) -1.0)
|
|
|
|
(cons (caddr target) -1.0) ) )
|
2023-11-18 18:06:43 -05:00
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "raylib.h"
|
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
void
|
|
|
|
PilBeginMode3D (float pos_x, float pos_y, float pos_z, float tgt_x, float tgt_y, float tgt_z)
|
|
|
|
{
|
|
|
|
Camera camera = {0};
|
2023-11-18 18:06:43 -05:00
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
Vector3 position = {0};
|
|
|
|
position.x = pos_x;
|
|
|
|
position.y = pos_y;
|
|
|
|
position.z = pos_z;
|
|
|
|
|
|
|
|
Vector3 target = {0};
|
|
|
|
target.x = tgt_x;
|
|
|
|
target.y = tgt_y;
|
|
|
|
target.z = tgt_z;
|
|
|
|
|
|
|
|
camera.position = position;
|
|
|
|
camera.target = target;
|
|
|
|
camera.up = (Vector3){0.0f, 1.0f, 0.0f};
|
|
|
|
camera.fovy = 60.0f;
|
|
|
|
camera.projection = 0;
|
|
|
|
|
|
|
|
UpdateCameraPro(&camera, (Vector3){0.0f,0.0f,0.0f},(Vector3){0.0f,0.0f,0.0f},0.0f);
|
|
|
|
|
|
|
|
BeginMode3D(camera);
|
2023-11-18 18:06:43 -05:00
|
|
|
}
|
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
void
|
|
|
|
PilDrawCube (float pos_x, float pos_y, float pos_z, float w, float l, float h, Color color)
|
|
|
|
{
|
|
|
|
Vector3 position = {0};
|
|
|
|
position.x = pos_x;
|
|
|
|
position.y = pos_y;
|
|
|
|
position.z = pos_z;
|
|
|
|
|
|
|
|
DrawCube(position, w, l, h, color);
|
2023-11-18 18:06:43 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**/
|
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(de raylib @ (pass native "libraylib.so"))
|
|
|
|
|
|
|
|
(de MovePos (pos)
|
|
|
|
(when (=1 (raylib "IsKeyDown" 'B KEY_RIGHT)) (inc pos 0.2))
|
|
|
|
(when (=1 (raylib "IsKeyDown" 'B KEY_LEFT)) (dec pos 0.2))
|
|
|
|
(when (=1 (raylib "IsKeyDown" 'B KEY_UP)) (dec (cddr pos) 0.2))
|
|
|
|
(when (=1 (raylib "IsKeyDown" 'B KEY_DOWN)) (inc (cddr pos) 0.2)) )
|
2023-11-18 18:06:43 -05:00
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(setq screen_width 800
|
|
|
|
screen_height 450
|
|
|
|
KEY_RIGHT 262
|
|
|
|
KEY_LEFT 263
|
|
|
|
KEY_DOWN 264
|
|
|
|
KEY_UP 265
|
|
|
|
MOUSE_BUTTON_LEFT 0
|
|
|
|
RAYWHITE (hex "FFF5F5F5")
|
|
|
|
DARKGRAY (hex "FF505050")
|
|
|
|
MAROON (hex "FF3721BE"))
|
2023-11-18 18:06:43 -05:00
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(raylib "InitWindow" NIL screen_width screen_height "raylib mmo - picolisp")
|
|
|
|
|
|
|
|
(setq camera_pos (list 0.0 10.0 10.0) )
|
|
|
|
(setq target_pos (list 0.0 0.0 0.0) )
|
2023-11-18 18:06:43 -05:00
|
|
|
|
|
|
|
(raylib "SetTargetFPS" NIL 60)
|
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(while (=0 (raylib "WindowShouldClose" 'B))
|
2023-11-18 18:06:43 -05:00
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(MovePos camera_pos)
|
|
|
|
(MovePos target_pos)
|
2023-11-18 18:06:43 -05:00
|
|
|
|
2023-11-18 20:03:18 -05:00
|
|
|
(raylib "BeginDrawing")
|
|
|
|
(raylib "ClearBackground" NIL RAYWHITE )
|
|
|
|
(BeginMode3D camera_pos target_pos)
|
|
|
|
(raylib "DrawGrid" NIL 30 (cons 1.0 -1.0))
|
|
|
|
(DrawCube target_pos 0.5 0.5 0.5 MAROON)
|
|
|
|
(raylib "EndMode3D")
|
|
|
|
(raylib "EndDrawing") )
|
2023-11-18 18:06:43 -05:00
|
|
|
|
|
|
|
(raylib "CloseWindow")
|
|
|
|
(bye)
|