diff --git a/src/vn.rs b/src/vn.rs index ae79fa0..cda8f63 100644 --- a/src/vn.rs +++ b/src/vn.rs @@ -23,9 +23,22 @@ fn render_scene(settings: &PlayerSettings, name: &str) -> Markup { @for object in &settings.objects.objects { @if let Some(image_set) = object.image.get(name) { @for image in &settings.images.images[image_set] { - @if let Some(image_path) = image.get_ref(name) { - figure .scene-image { - img src=(image_path) alt=""; + @if let (Some(image_path), hor, ver, scale) = ( + image.get_ref(name), + object.hor.get(name), + object.ver.get(name), + object.scale.get(name) + ) { + @if !image_path.is_empty() { + figure .scene-image { + img src=(image_path) alt="" + style=(format!( + "left: {}%; top: {}%; transform: translate(-50%, -50%) scale({});", + (hor + 8.0) * 100.0 / 16.0, + (ver + 4.5) * 100.0 / 9.0, + scale + )); + } } } } @@ -202,9 +215,10 @@ fn global_styles() -> Markup { width: auto; object-fit: contain; position: absolute; - top: 0; left: 50%; - transform: translateX(-50%); + top: 50%; + transform-origin: center center; + transition: transform 0.3s ease; }"; const TEXTBOX_STYLES: &str = r"