aprendendo-hare/raylib -> raylib.ha

This commit is contained in:
guapito 2024-04-07 11:46:13 -03:00
parent 62d01cb12b
commit d4d1c11738
8 changed files with 0 additions and 292 deletions

View File

@ -1,3 +0,0 @@
compile:
hare build -L. -lraylib -o example/example example/example.ha

View File

@ -1,3 +0,0 @@
### Raylib Para Hare
Um "port" da Raylib para a Hare, baseado na live feita pelo
[Tsoding](https://www.youtube.com/watch?v=2E3E_Rh3mvw)

View File

@ -1,62 +0,0 @@
use fmt;
use types::c;
use raylib::*;
use gruvbox::*;
const SPEED: f32 = 100.0;
export fn main() void = {
let bg = get_color(bg0);
let fg = get_color(fg1);
let red = get_color(red0);
let green = get_color(green0);
let yellow = get_color(yellow0);
let blue = get_color(blue0);
let purple = get_color(purple0);
let aqua = get_color(aqua0);
let orange = get_color(orange0);
let x: f32 = 0.0;
let y: f32 = 0.0;
let size_x: f32 = 32.0;
let size_y: f32 = 32.0;
let square_color = green;
init_window(800, 600, "Olá, Mundo!");
for (!window_should_close()) {
begin_drawing();
clear_background(bg);
draw_text("Olá, Mundo!", 10, 570, 20, fg);
if (is_key_down('W')) y -= SPEED*get_frame_time();
if (is_key_down('A')) x -= SPEED*get_frame_time();
if (is_key_down('S')) y += SPEED*get_frame_time();
if (is_key_down('D')) x += SPEED*get_frame_time();
if (is_key_down('-')) size_y -= SPEED*2.0*get_frame_time();
if (is_key_down('-')) size_x -= SPEED*2.0*get_frame_time();
if (is_key_down('=')) size_y += SPEED*2.0*get_frame_time();
if (is_key_down('=')) size_x += SPEED*2.0*get_frame_time();
if (is_key_down('1')) square_color = red;
if (is_key_down('2')) square_color = green;
if (is_key_down('3')) square_color = yellow;
if (is_key_down('4')) square_color = blue;
if (is_key_down('5')) square_color = purple;
if (is_key_down('6')) square_color = aqua;
if (is_key_down('7')) square_color = orange;
if (is_key_down('8')) square_color = fg;
if (is_key_down('9')) square_color = bg;
if (is_key_down('Q')) close_window();
draw_rectangle(x: int, y: int, size_x: int, size_y: int, square_color);
end_drawing();
};
close_window();
};

Binary file not shown.

View File

@ -1,80 +0,0 @@
use fmt;
use types::c;
use raylib::*;
use gruvbox::*;
const SPEED: f32 = 100.0;
export fn main() void = {
let bg = get_color(bg0);
let fg = get_color(fg1);
let red = get_color(red0);
let green = get_color(green0);
let yellow = get_color(yellow0);
let blue = get_color(blue0);
let purple = get_color(purple0);
let aqua = get_color(aqua0);
let orange = get_color(orange0);
let x: f32 = 0.0;
let y: f32 = 0.0;
let mouse_x: f32 = 0.0;
let mouse_y: f32 = 0.0;
let size_x: f32 = 32.0;
let size_y: f32 = 32.0;
let first_square_color = green;
let second_square_color = aqua;
init_window(800, 600, "Olá, Mundo!");
for (!window_should_close()) {
set_window_title("Olá, Mundo!");
begin_drawing();
clear_background(bg);
draw_text("Olá, Mundo!", 10, 570, 20, fg);
// Keyboard
if (is_key_down('W')) y -= SPEED*get_frame_time();
if (is_key_down('A')) x -= SPEED*get_frame_time();
if (is_key_down('S')) y += SPEED*get_frame_time();
if (is_key_down('D')) x += SPEED*get_frame_time();
if (is_key_down('-')) size_y -= SPEED*2.0*get_frame_time();
if (is_key_down('-')) size_x -= SPEED*2.0*get_frame_time();
if (is_key_down('=')) size_y += SPEED*2.0*get_frame_time();
if (is_key_down('=')) size_x += SPEED*2.0*get_frame_time();
if (is_key_down('1')) first_square_color = red;
if (is_key_down('2')) first_square_color = green;
if (is_key_down('3')) first_square_color = yellow;
if (is_key_down('4')) first_square_color = blue;
if (is_key_down('5')) first_square_color = purple;
if (is_key_down('6')) first_square_color = aqua;
if (is_key_down('7')) first_square_color = orange;
if (is_key_down('8')) first_square_color = fg;
if (is_key_down('9')) first_square_color = bg;
// Mouse
if (true) {
mouse_x = get_mouse_x();
mouse_y = get_mouse_y();
};
if (is_mouse_button_pressed(0)) second_square_color = blue;
if (is_mouse_button_pressed(1)) second_square_color = red;
if (is_mouse_button_pressed(2)) second_square_color = aqua;
// Shapes
draw_rectangle(x: int, y: int, size_x: int, size_y: int, first_square_color);
draw_rectangle(mouse_x: int, mouse_y: int, size_x: int, size_y: int, second_square_color);
end_drawing();
};
close_window();
};

View File

@ -1,18 +0,0 @@
export let bg0: u32 = 0x282828FF;
export let bg1: u32 = 0x3c3836FF;
export let fg0: u32 = 0xa89984FF;
export let fg1: u32 = 0xebdbb2FF;
export let red0: u32 = 0xcc241dFF;
export let red1: u32 = 0xfb4934FF;
export let green0: u32 = 0x98971aFF;
export let green1: u32 = 0xb8bb26FF;
export let yellow0: u32 = 0xd79921FF;
export let yellow1: u32 = 0xfabd2fFF;
export let blue0: u32 = 0x458588FF;
export let blue1: u32 = 0x83a598FF;
export let purple0: u32 = 0xb16286FF;
export let purple1: u32 = 0xd3869bFF;
export let aqua0: u32 = 0x689d6aFF;
export let aqua1: u32 = 0x8ec07cFF;
export let orange0: u32 = 0xd65d0eFF;
export let orange1: u32 = 0xfe8019FF;

View File

@ -1,70 +0,0 @@
use fmt;
use types::c;
export type Color = struct {
r: u8,
g: u8,
b: u8,
a: u8,
};
// Window-Related Functions
export fn init_window(width: size, height: size, title: str) void = {
InitWindow(width, height, c::fromstr(title));
};
export fn set_window_title(title: str) void = {
SetWindowTitle(c::fromstr(title));
};
@symbol("InitWindow") fn InitWindow(size, size, *c::char) void;
@symbol("SetWindowTitle") fn SetWindowTitle(*c::char) void;
export @symbol("WindowShouldClose") fn window_should_close() bool;
export @symbol("CloseWindow") fn close_window() void;
// Drawing-Related Functions
export @symbol("BeginDrawing") fn begin_drawing() void;
export @symbol("EndDrawing") fn end_drawing() void;
export @symbol("ClearBackground") fn clear_background(color: Color) void;
// Input-related functions: keyboard
export @symbol("IsKeyDown") fn is_key_down(key: int) bool;
// Input-related functions: mouse
export @symbol("IsMouseButtonPressed") fn is_mouse_button_pressed(mouse_button: int) bool;
export @symbol("IsMouseButtonDown") fn is_mouse_button_down(mouse_button: int) bool;
export @symbol("IsMouseButtonReleased") fn is_mouse_button_released(mouse_button: int) bool;
export @symbol("GetMouseX") fn get_mouse_x() int;
export @symbol("GetMouseY") fn get_mouse_y() int;
export @symbol("SetMousePosition") fn set_mouse_position(x: int, y: int) void;
export @symbol("SetMouseOffset") fn set_mouse_offset(offset_x: int, offset_y: int) void;
// Input-related functions: gamepad
export @symbol("IsGamepadAvaible") fn is_gamepad_avaible(gamepad: int) bool;
export @symbol("IsGamepadButtonPressed") fn is_gamepad_button_pressed(gamepad: int, button: int) bool;
export @symbol("IsGamepadButtonDown") fn is_gamepad_button_down(gamepad: int, button: int) bool;
export @symbol("IsGamepadButtonReleased") fn is_gamepad_button_released(gamepad: int, button: int) bool;
export @symbol("IsGamepadButtonUp") fn is_gamepad_button_up(gamepad: int, button: int) bool;
export @symbol("GetGamepadButtonPressed") fn get_gamepad_button_pressed() int;
export @symbol("GetGamepadAxisCount") fn get_gamepad_axis_count() int;
export @symbol("GetGamepadAxisMovement") fn get_gamepad_axis_movement(gamepad: int, axis: int) f32;
// Timing-Related Functions
export @symbol("GetFrameTime") fn get_frame_time() f32;
// module: rshapes
// Basic shapes drawing functions
export @symbol("DrawRectangle") fn draw_rectangle(x: int, y: int, w: int, h: int, color: Color) void;
// module: rtextures
// Color/Pixel related functions
export @symbol("GetColor") fn get_color(color: u32) Color;
// module: rtext
// Text-Drawing Functions
export fn draw_text(title: str, x: size, y: size, text_size: size, color: Color) void = {
DrawText(c::fromstr(title), x, y, text_size, color);
};
@symbol("DrawText") fn DrawText(*c::char, size, size, size, Color) void;

View File

@ -1,56 +0,0 @@
use fmt;
use types::c;
export type Color = struct {
r: u8,
g: u8,
b: u8,
a: u8,
};
// Window-Related Functions
export fn init_window(width: size, height: size, title: str) void = {
InitWindow(width, height, c::fromstr(title));
};
export fn set_window_title(title: str) void = {
SetWindowTitle(c::fromstr(title));
};
@symbol("InitWindow") fn InitWindow(size, size, *c::char) void;
@symbol("SetWindowTitle") fn SetWindowTitle(*c::char) void;
export @symbol("WindowShouldClose") fn window_should_close() bool;
export @symbol("CloseWindow") fn close_window() void;
// Drawing-Related Functions
export @symbol("BeginDrawing") fn begin_drawing() void;
export @symbol("EndDrawing") fn end_drawing() void;
export @symbol("ClearBackground") fn clear_background(color: Color) void;
// Input-related functions: keyboard
export @symbol("IsKeyDown") fn is_key_down(key: int) bool;
// Input-related functions: mouse
export @symbol("IsMouseButtonPressed") fn is_mouse_button_pressed(button: int) bool;
export @symbol("GetMouseX") fn get_mouse_x() f32;
export @symbol("GetMouseY") fn get_mouse_y() f32;
// Timing-Related Functions
export @symbol("GetFrameTime") fn get_frame_time() f32;
// module: rshapes
// Basic shapes drawing functions
export @symbol("DrawRectangle") fn draw_rectangle(x: int, y: int, w: int, h: int, color: Color) void;
// module: rtextures
// Color/Pixel related functions
export @symbol("GetColor") fn get_color(color: u32) Color;
// module: rtext
// Text-Drawing Functions
export fn draw_text(title: str, x: size, y: size, text_size: size, color: Color) void = {
DrawText(c::fromstr(title), x, y, text_size, color);
};
@symbol("DrawText") fn DrawText(*c::char, size, size, size, Color) void;