aprendendo-hare/raylib -> raylib.ha
This commit is contained in:
parent
62d01cb12b
commit
d4d1c11738
|
@ -1,3 +0,0 @@
|
|||
compile:
|
||||
hare build -L. -lraylib -o example/example example/example.ha
|
||||
|
|
@ -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)
|
|
@ -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.
|
@ -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();
|
||||
};
|
||||
|
|
@ -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;
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
Loading…
Reference in New Issue