dyrect/examples/raylib_diablo_like.c
2025-01-03 16:20:48 +01:00

61 lines
1.7 KiB
C

// @BAKE gcc $@ -o $*.out -I../ -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
#include <raylib.h>
#include "rect_layouts.h"
rect_t hotbar;
rect_t healt;
rect_t manna;
rect_t inventory;
rect_t inventory_inner;
rect_t inventory_slot;
void do_resize(void) {
hotbar = ride(after(get_screen_rect(), 1), scaley(get_screen_rect(), 0.17f));
healt = ride(after(get_screen_rect(), 1), scale(get_unit_rect(), hotbar.height * 1.2f));
manna = paper(hotbar, healt);
inventory = stretchy(hotbar, paper(get_screen_rect(), scalex(get_screen_rect(), 0.5f)));
inventory_inner = buoyance(inventory, scale(inventory, 0.8f));
inventory_slot = rock(inventory_inner, hang(inventory_inner, scale(get_unit_rect(), inventory_inner.width / 9)));
}
signed main(void) {
SetConfigFlags(FLAG_WINDOW_RESIZABLE);
InitWindow(600, 600, "");
do_resize();
while (!WindowShouldClose()) {
if (IsWindowResized()) {
do_resize();
}
BeginDrawing();
DrawRectangleRec(get_screen_rect(), RAYWHITE);
DrawRectangleRec(inventory, BLACK);
DrawRectangleRec(inventory_inner, GRAY);
for (int i = 0; i < 6; i++) {
for (int h = 0; h < 9; h++) {
DrawRectangleRec(
after(next(inventory_slot, h), i),
(Color) {
(unsigned char)(0 + ((i + h) * 10)),
(unsigned char)(0 + ((i + h) * 10)),
(unsigned char)(0 + ((i + h) * 10)),
255,
}
);
}
}
DrawRectangleRec(hotbar, GRAY);
DrawRectangleRec(healt, RED);
DrawRectangleRec(manna, BLUE);
EndDrawing();
}
CloseWindow();
return 0;
}