mirror of
https://github.com/seekrs/MacroLibX.git
synced 2026-01-11 14:43:34 +00:00
86 lines
2.6 KiB
Python
86 lines
2.6 KiB
Python
import macrolibpy as mlpy
|
|
import pathlib
|
|
import os
|
|
import math
|
|
|
|
current_path = pathlib.Path(__file__).parent.resolve()
|
|
|
|
mlx = mlpy.Context.create()
|
|
win = mlx.new_window(400, 400, "My window")
|
|
mlx.set_fps_goal(60)
|
|
logo_png = mlx.new_image_from_file(os.path.join(current_path, "42_logo.png"))[0]
|
|
logo_bmp = mlx.new_image_from_file(os.path.join(current_path, "42_logo.bmp"))[0]
|
|
logo_jpg = mlx.new_image_from_file(os.path.join(current_path, "42_logo.jpg"))[0]
|
|
|
|
win.pixel_put(200, 10, 0xFF0FFFF)
|
|
win.put_image(logo_png, 0, 0)
|
|
|
|
mlx.set_font_scale(os.path.join(current_path, "font.ttf"), 16.0)
|
|
win.string_put(20, 20, 0x0020FFFF, "that text will disappear")
|
|
|
|
custom_img = mlx.new_image(100, 100)
|
|
i, j, k = 0, 0, 0
|
|
while i < (100 * 100) * 4:
|
|
if j >= 100:
|
|
j = 0
|
|
k += 1
|
|
if i < 10000 or i > 20000:
|
|
custom_img.set_pixel(j, k, (k << 24) | (j << 16) | (i << 8) | 0x99)
|
|
i += 4
|
|
j += 1
|
|
|
|
def onevent(ev):
|
|
if ev == 0:
|
|
mlx.loop_end()
|
|
|
|
THRESHOLD = 200
|
|
CIRCLE_RADIUS = 50
|
|
CIRCLE_DIAMETER = CIRCLE_RADIUS + CIRCLE_RADIUS
|
|
def onupdate():
|
|
if onupdate.i > THRESHOLD:
|
|
win.clear(0x334D4DFF)
|
|
win.put_transformed_image(logo_bmp, 220, 40, 0.5, 0.5, onupdate.i)
|
|
|
|
if onupdate.i >= THRESHOLD + THRESHOLD / 4:
|
|
mlx.set_font_scale("default", 16.0)
|
|
else:
|
|
mlx.set_font_scale("default", 6.0)
|
|
|
|
win.string_put(160, 120, 0xFF2066FF, "this text should be behind")
|
|
win.put_image(logo_png, 100, 100)
|
|
win.put_image(custom_img, 150, 60)
|
|
|
|
mlx.set_font("default")
|
|
win.string_put(20, 50, 0xFFFFFFFF, "that's a text")
|
|
|
|
color = 0
|
|
for j in range(0, 400):
|
|
win.pixel_put(j, j, 0x0000FFFF + (color << 24))
|
|
win.pixel_put(399 - j, j, 0x0000FFFF)
|
|
color += (color < 255)
|
|
|
|
if onupdate.i < THRESHOLD:
|
|
win.put_transformed_image(logo_jpg, 210, 150, 0.5, 2.0, 0.0)
|
|
else:
|
|
win.put_transformed_image(logo_jpg, 210, 150, abs(math.sin(onupdate.i / 100.0)), abs(math.cos(onupdate.i / 100.0) * 2.0), 0.0)
|
|
|
|
mlx.set_font_scale("default", 8.0)
|
|
win.string_put(210, 175, 0xFFAF2BFF, "hidden")
|
|
|
|
win.pixel_put_region(200, 170, CIRCLE_DIAMETER, CIRCLE_DIAMETER, onupdate.pixels_circle)
|
|
|
|
onupdate.i += 1
|
|
onupdate.i = 0
|
|
onupdate.pixels_circle = [pixel for pixel in range(0, CIRCLE_DIAMETER * CIRCLE_DIAMETER)]
|
|
|
|
i = 0
|
|
for j in range(0, CIRCLE_DIAMETER):
|
|
for k in range(0, CIRCLE_DIAMETER):
|
|
if((CIRCLE_RADIUS - j) * (CIRCLE_RADIUS - j) + (CIRCLE_RADIUS - k) * (CIRCLE_RADIUS - k) < CIRCLE_RADIUS * CIRCLE_RADIUS):
|
|
onupdate.pixels_circle[i] = 0xA10000FF + ((j * k * i) << 8)
|
|
i += 1
|
|
|
|
win.on_event(mlpy.EventType.WINDOW_EVENT, onevent)
|
|
mlx.add_loop_hook(onupdate)
|
|
mlx.loop()
|