From 0468cd05f0f248c2258340982b27ee8ca7cdd4f2 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sat, 5 May 2018 16:17:50 +0200 Subject: [PATCH] Mouse Wheel controlling Target Repulsion Force --- .vs/AAWeb/v15/.suo | Bin 69120 -> 71168 bytes Canvas.js | 12 +++++++++++- FloatingSpace/FloatingLayer.js | 31 +++++++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/.vs/AAWeb/v15/.suo b/.vs/AAWeb/v15/.suo index 14b1d4a953b725cc4d14cac513babaf68b105c39..f905bbc2fa57ae85276d4ea7ed85cc0526ea4bff 100644 GIT binary patch delta 2051 zcmc(fZA@EL7{~89+*@utD7S!x*;2~J7<+M)4FQRhZZO;yro1S!7opvT%bEoWW#vVL zV%Ubl6#9@X5;WV5K_hOm9-~nc?PB)DI0ba*2i!V_*%wXr#g{BPd`?pg=rT1idXity z|2+4c=bq=B|E+IC^t~w#*wUyFX^J2iP(~rQ=jZ2nlUB9xReeMfVff3&W z&`#Uww*ve~pCuQeE$ZoXFUBWQ@dsNp@+)RoXgr&UF-R64Op#FV2kWuVjOhC!{ZVKX z^9=iN^a!#RDMHHNJ@H{u3q;B@l;b!D;VB=*z7lpwrj&b8@tnLpi8?kic3^LYZmBT2 z5mgh?jPO}}JqNy)hV+gb+dkm6<>EtLn`TLEJK^K#>{Wa5*+P9h0dIPY@j7`T-b7d~ zr*>swbR)6>(I9q2Mr;V5m5%*F@vBku;@2R1kYpqU;aOK;pM>DG2+NTKgs+do{(eM@ z7?I5gk4KKnB5cCIN+b<2A%)1o7PH~9oF#3=h#9on)zU6hj}4Za%vC6OmM0cX=Hu`o z9nlUkTmEG-=w9bvFEjaI4pAl|6ZwSjq|&-#@af!tJwaatMM^fE6TqwQq*Lf3rISty z%xkzUYMhuhBLUitw@4}+P3j^R_CwM#jbGoqcmb}P#N~0%t5(r(amVm8Ti6Keu=J2X zhFkOJs9H)@o2YJ}YA#h>R4vdzomBxPUzSc_hUb_e|2py4SebQeNDA1klv#J8*v>^o zh^S>WP(^h>jZK>3CHs85YncTDkxvPn)xN)eBYf%I4Le%$ zhydL!h0NDtCxNy^BKP8Ae%efFpCb@#wKIE%o%%cMFy3lcFOYyQC_%8(4#8u&@wv}* zlr=TD>JD%-hZ~#^+2F%LIlB6D9S=bCxit3r+-|~1?>y0Epmn%=v;ve3jzaEnho;C` z?{#`$zJDEg8OjH16Dr-#19hH#B}W>Z&4=p`@gX>SQo&Xb3w!ovz`%(DINO&Eq3PG) z)YxJ0UDJd9cqTc6tGBB!P&hNZ5gfyr%yltDh!z?{`|p-BR$20<@@pA)oQ?6sJM63u z22PehO(+Jks7#Ar4DVq`gvo)VMU_QsBULK>s}{nGB&IOdkns88PkhjWn%`i6$bUlINB=!sWD68P#xCN}*-Anm2Kc;X85P8S*CBlpg8twC*MGt=n=KKjZ8 zrqCu>@tK8Lnr8_#_M4e2q>GaHYpTI;X&boT8i=bGT!Ke%Y6Ub7h{EfT+&J60M9Oyfg%u27kO-5xx!GE;^+~4S+^Q!#rK@Ay+8jT^8 F^BY1#@?ih~ delta 2039 zcmd7Sdu$X%90%~3>Fz!Hx;+bh(DwSU(27#7wzdR{EVPl@fV32R6bux>L_(TUN=qxb zYfVMd0BP^nh$ckCVoYp}DL3Jve_di?jEPz>n#O=>Oe>;*SCR6Pp5MVcBZ-puACr7` zelxo_H#5JT?fyXPKCJb7DctN#HyE4E7>k3MNF;)aai~02pDB`auVhVhOnl87(9>N* zU7}0mahevd@b{@R?q&CG^pED?f?|i;G?kD-=~`uW9ap2 zPr-bsf_nN$Tgf*Q*DKs>(JliW)U4LflX_?lZU-ThN{V!NrEY+o;uGsysv)jvRjp zdLM;iC;$^2;05*6gQ#PRFGQ>suSQviIvuhh74jhskO%e{q=5Rp3$+`ZpmumEsQ&17 zc~~hrG9V8$SO&2vE~IZ93-#6LsV1khP=6Xx)F4*$ zJOV})Re4H8E~j?GCvx!edwjx!mb))twEeRmw>@08yJs}pD0Z{VMO~>kxrcVA`FXay znwDS-6tpD9)~Zq}_ZIYWD_65tiQv2z+rQi^6P8!AwhOCV3^W^Lm=0NBp5+5AZmBQ6 zr3Y(rh0I+st_SN>P&=+$>x8vd1XA1X%%Sw}IW+lo^}-2xW4$w8imfx8w&bSBlr5Kd zFtL&wYFel9z!{hTT9s7opG5E@oQI#_0{jfWz(u$Om*H0k!xa1mSKxQJ3e#{6uEPzu z3Af-6xD7K90rk<@Q^gjujch&J#kR3lCS5N^T>MjVwYLObSWn^h=Mua)Uh06M(4vkS z8R{@OjrzRg-D?CpXYuIn7}V`ErMcG>6!MuAdesd2L$<)a@_5FUFkIMjMm-10X{2v6 znfpul5jxhliNYVwBL9e;QbvlXvHuP0bs@w3wVd1K%$vuBbx=_M1~0wS-yq9>SSj4M zFy+5Wen<$s%JSgQTy70&QckWG!I62~t&Uc#s1E?6rgN2!XTMTYK;yI57A2J8psO=) zXYWQQksKIyPmx z 0) { + + canvas.floatingSpace.floatingLayer.changeTargetRepulsion(event.wheelDelta); + + } else { + + viewPort.applyZoom(delta); + + } + return false; // This instructs the browser not to take the event and scroll the page. } diff --git a/FloatingSpace/FloatingLayer.js b/FloatingSpace/FloatingLayer.js index 26a4fdaf7..80f7b34b5 100644 --- a/FloatingSpace/FloatingLayer.js +++ b/FloatingSpace/FloatingLayer.js @@ -15,10 +15,13 @@ function newFloatingLayer() { physicsLoop: physicsLoop, isInside: isInside, isInsideFloatingObject: isInsideFloatingObject, + changeTargetRepulsion: changeTargetRepulsion, initialize: initialize }; - innactiveFloatingObjects = []; + let innactiveFloatingObjects = []; + + let maxTargetRepulsionForce = 0.0005; return thisObject; @@ -502,10 +505,10 @@ function newFloatingLayer() { /* We need to put a hard limit to this force, in order to to eject very little floatingObjects to the infinite and beyond. */ - if (force > 0.0005) { - force = 0.0005; + if (force > maxTargetRepulsionForce) { + force = maxTargetRepulsionForce; } - + var pos1 = { x: floatingObject1.currentPosition.x, y: floatingObject1.currentPosition.y @@ -540,6 +543,26 @@ function newFloatingLayer() { } + function changeTargetRepulsion(pDelta) { + + if (pDelta > 0) { + + pDelta = 1; + + } else { + + pDelta = -1; + + } + + maxTargetRepulsionForce = maxTargetRepulsionForce + pDelta / 10000; + + if (maxTargetRepulsionForce < 0.0001) { + + maxTargetRepulsionForce = 0.0001 + } + } + function colliding(floatingObject1, floatingObject2) { /* This function detects weather 2 floatingObjects collide with each other. */