From 8e378ac89b9a2f37dadd000ff0b3e7fa641a402d Mon Sep 17 00:00:00 2001 From: otya128 Date: Sun, 11 Dec 2016 19:41:16 +0900 Subject: [PATCH] Fix TOUCH --- SMILEBASIC/petitcomputer.d | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index 343dc7d..db8a3bc 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -771,11 +771,14 @@ class PetitComputer mousey -= currentDisplay.rect[1].y; if (mousex >= 0 && mousey >= 0) { - auto x3DS = cast(int)(mousex * (cast(float)w / screenWidthDisplay1)); - auto y3DS = cast(int)(mousey * (cast(float)h / screenHeightDisplay1)); - auto gamepadx = cast(int)(mousex * (cast(float)w / 854)); - auto gamepady = cast(int)(mousey * (cast(float)h / 480)); - touchPosition = Touch(old.tm + 1, x3DS, y3DS, gamepadx, gamepady, mousex, mousey); + auto x3DS = cast(int)(mousex * (screenWidthDisplay1 / cast(float)w)); + auto y3DS = cast(int)(mousey * (screenHeightDisplay1 / cast(float)h)); + auto gamepadx = cast(int)(mousex * (854 / cast(float)w)); + auto gamepady = cast(int)(mousey * (480 / cast(float)h)); + touchPosition = Touch(old.tm + 1, + x3DS.clamp(5, 314), y3DS.clamp(5, 234), + gamepadx.clamp(8, 854 - 8), gamepady.clamp(8, 480 - 8), + mousex, mousey); } } }