intouch := @use("lib:intouch") render := @use("lib:render") stn := @use("stn") example := fn(): void { screen := render.init(true) mouse_pos := stn.math.Vec2(int).(0, 0) bg_colour := render.BLACK pen_colour := render.WHITE loop { mouse := intouch.recieve_mouse_event() if mouse != null { mouse_pos.x = stn.math.clamp(int, mouse_pos.x + mouse.x_change, 10, @bitcast(screen.width) - 10) mouse_pos.y = stn.math.clamp(int, mouse_pos.y - mouse.y_change, 10, @bitcast(screen.height) - 10) if mouse.left { screen.put_filled_circle(@bitcast(mouse_pos), 10, pen_colour) } else if mouse.right { screen.put_filled_circle(@bitcast(mouse_pos), 10, bg_colour) } else if mouse.middle { pen_colour = stn.random.any(render.Color) } } kb := intouch.recieve_key_event() if kb != null { if kb.just_triggered { bg_colour = stn.random.any(render.Color) screen.clear(bg_colour) } } screen.sync() } }