colors, rotations, and more

This commit is contained in:
2024-10-11 00:58:24 -04:00
parent e29f27266a
commit 823a8f79d3
9 changed files with 367 additions and 149 deletions

View File

@@ -1,18 +1,84 @@
main :: () {
screen := New(Screen);
init_screen(screen, 3, 2);
fill_entire_screen(screen, color = .FG_BLACK);
w, h := get_console_size();
init_screen(screen, w, h);
// draw(screen, 0, 0, color = .FG_GREEN);
draw_line(screen, 0, 0, 0, 1);
// draw(screen, 3, 0, color = .FG_GREEN);
i := 0;
j := 0;
increase := true;
while true {
j += 1;
// Render to terminal output
//swap_buffer(screen);
if i == 0 {
increase = true;
}
print("%\n", screen.buffer);
if i == 100 {
increase = false;
}
if increase {
i += 1;
} else {
i -= 1;
}
fill_entire_screen(screen, BLANK_PIXEL);
t1 := Triangle.{
.{30 - i, 20},
.{95, 10 - (i / 2)},
.{90 + i, 40},
};
scale(0.01 * i, *t1);
draw_triangle(screen, t1, #char "%");
scale(0.02 * i, *t1);
draw_triangle(screen, t1, #char "%");
scale(0.03 * i, *t1);
draw_triangle(screen, t1, #char "%");
t2 := Triangle.{
.{100, 30},
.{140, 30},
.{120, 20},
};
rotate(*t2, get_triangle_centroid(t2), -j);
draw_triangle(screen, t2);
q1 := make_quad_from_rect(
.{100, 10},
.{110, 20}
);
rotate(*q1, .{100, 10}, j);
draw_quad(screen, q1, #char "-");
draw_text(screen, .{10, 10}, "[ TEXT-BASED RENDERING DEMO ]");
if i % 3 == 0 {
set_console_color(.RED);
} else if i % 5 == 0 {
set_console_color(.GREEN);
} else {
set_console_color(.BLUE, .BOLD);
}
swap_buffer(screen);
sleep_milliseconds(20);
reset_temporary_storage();
}
}
#import "Console_Render";
#import "Basic";
#import "Basic";
#import "Math";
#import "Print_Color";