use rustraight::prelude::*;
fn asset(rel: &str) -> String {
format!("{}/検証素材/{}", env!("CARGO_MANIFEST_DIR"), rel)
}
fn main() {
init(WindowConfig {
title: String::from("11_overlay"),
width: 500,
height: 400,
screen_width: 500,
screen_height: 400,
overlay_enabled: true,
..Default::default()
});
let sprite = load_image(&asset("images/sprite.png"));
let mut overlay_on = true;
while advance_frame() {
draw_fill(MAIN_SCREEN, Color::rgb(15, 15, 20));
draw_text(MAIN_SCREEN, 10, 10, "V: overlay_visible切替 C: 押している間 overlay_clear()", Color::YELLOW);
if is_just_pressed(KeyCode::KeyV) {
overlay_on = !overlay_on;
overlay_visible(overlay_on);
}
draw_text(MAIN_SCREEN, 10, 30, format!("overlay_visible: {overlay_on}"), Color::GREEN);
overlay_draw_image(-80, 100, sprite);
overlay_draw_text(-80, 170, "overlay_draw_text", Color::WHITE);
overlay_blend_set(BlendMode::Add);
overlay_draw_image_ex(550, 100, sprite, DrawImageParams {
scale_x: 1.5, scale_y: 1.5, rotation: 0.0, alpha: 0.7, flip_x: false, flip_y: false,
});
overlay_blend_set(BlendMode::Normal);
draw_text(MAIN_SCREEN, 10, 50, "左右の画面外にスプライトが見えればOK(左:通常 / 右:Add+半透明)", Color::WHITE);
draw_image(MAIN_SCREEN, -80, 250, sprite);
draw_text(MAIN_SCREEN, 10, 320, "上のdraw_imageはメイン外座標 → 自動でオーバーレイに描かれるはず", Color::CYAN);
if is_pressed(KeyCode::KeyC) {
overlay_clear();
}
}
}