From ef07f70d6565f0cb38487f5a5c16a50bfc1e3f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gervais?= Date: Fri, 8 Apr 2016 00:44:04 -0400 Subject: [PATCH] =?UTF-8?q?premi=C3=A8re=20=C3=A9bauche=20PlanetManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/PlanetManager.cs | 93 ++++++++++++++++++++++++++++++++ Assets/Scripts/testRotate.cs | 38 +++++++++++++ Assets/_Scenes/planet.unity | Bin 0 -> 10196 bytes 3 files changed, 131 insertions(+) create mode 100644 Assets/Scripts/PlanetManager.cs create mode 100644 Assets/Scripts/testRotate.cs create mode 100644 Assets/_Scenes/planet.unity diff --git a/Assets/Scripts/PlanetManager.cs b/Assets/Scripts/PlanetManager.cs new file mode 100644 index 0000000..a62a2a4 --- /dev/null +++ b/Assets/Scripts/PlanetManager.cs @@ -0,0 +1,93 @@ +using UnityEngine; +using System.Collections; + +public class PlanetManager : MonoBehaviour +{ + + public int NbCartiers = 10; + public float TailleCartiersEnDegres = 0; //radian -> valeurs 0 a 360 + + var wedges = new List(); + + + // Use this for initialization + void Start () { + TailleCartiersEnRadiants = 360.0 / NbCartiers; + + float debutAngleTheta = 0.0; + + for(int i = 0; i < NbCartiers; i++) + { + debutAngleTheta = i*TailleCartiersEnRadiants; + wedges.Add(new wedges(){tMin = debutAngleTheta, tMax = debutAngleTheta + TailleCartiersEnRadiants}); + } + } + + // Update is called once per frame + void Update () { + + + } + + + + public float GetPlanetRadius() + { + + } + + + public Vector3 GetPlanetCoordinatesFromPlayerXY(float playerLocalX, float playerLocalY) + { + var theta = playerLocalX; + double x = r * Math.Cos(theta * Math.PI / 180); + double y = r * Math.Sin(theta * Math.PI / 180) + playerLocalY; + + + return new Vector3(x,y,0); + } + + + /// + /// retourn le no de plateforme + /// + /// + public int GetWedgeIndex(float thetaPlayerX) + { + return Math.Floor(thetaPlayerX / TailleCartiersEnRadiants); + } + + /// + /// + /// + /// + /// + public int GetWedgeOpposé(int wedgeIndex) + { + //(i + 5) % 10 => [0,9] + return (wedgeIndex + NbCartiers / 2) % (NbCartiers); + } + + + /// + /// retourne l'objet interne + /// + /// + /// + public Wedge GetWedgeFromTheta(float thetaPlayerX) + { + return wedges[GetWedgeIndex(thetaPlayerX)]; + } + + /// + /// Représente une plateforme qui bouge. + /// + public class Wedge + { + float yoffset = 0; //valeurs entre -1 et 1; -1 étant renfoncé, 0 position normale, et 1 vers l'extérieur + float tMin = 0; //theta min et theta max : angle thetat de début et fin du cartier; + float tMax = 0; + + } + +} diff --git a/Assets/Scripts/testRotate.cs b/Assets/Scripts/testRotate.cs new file mode 100644 index 0000000..6c8155f --- /dev/null +++ b/Assets/Scripts/testRotate.cs @@ -0,0 +1,38 @@ +using System; +using UnityEngine; +using System.Collections; + +public class testRotate : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } + + /// + /// Juste pour tester le mouvement du player autour du cercle. + /// Le player se déplace de gauche a droite en x et la valeur de x représente l'angle theta + /// saute en y + /// + void FixedUpdate() + { + var speed = 13.2; + var theta = Time.realtimeSinceStartup * speed % 360.0; // Position X du player = angle theta + var r = 5.0; //sphereradius + + + // XY coordinates + double x = r * Math.Cos(theta * Math.PI / 180); + double y = r * Math.Sin(theta * Math.PI / 180); // + y0 du player + + var player = GameObject.Find("CubePlayer").gameObject; + + player.transform.position = Vector3.Lerp(player.transform.position, new Vector3( (float)x, (float)y, 0 ), Time.deltaTime); + + } +} diff --git a/Assets/_Scenes/planet.unity b/Assets/_Scenes/planet.unity new file mode 100644 index 0000000000000000000000000000000000000000..88e89850859e406686d41722ab15147cc91dca04 GIT binary patch literal 10196 zcmeHMdyHIF89%ezmKJ$aE3cMmS!j8+6w0GYw=+At+g;f04!h-{7VF)avpbi)J9oKr zXS+)vnFIxi{-KEyOGUc>AW#g1MZk|2_d-9E|3rc{;w=s9I*GIy z;*IM%nYgO0;u^fkb+NxR!8QLY(I@|p<2e_9e$To1e}cHGjr>nZ@RWEO`sqQR`Z*Pq zrP)qSQ<%nG{hXfQT0aBmQ$J@k;qM#!Tn=1_4EU!+A6D`?L$|^_^Z7Wsva9IFVbnDh z%W}mJ%k5%(N4Foy-cB^~UR+X*TsS@vmSs5x*yl~l2+wWa=ujN_1;0lJi6phXLIT8x|Flc!Jp3N(p&y? zHp`#E?nZR!v~)Hdj2eRiolWD7L4nR@@fV?g1_jDVXVbV2b~cF9*(~mUM>?CvQ-XX- z=#!6jw$v;qXYeOV=Xd#}6FjBt=VtWz9akz`h$DB}zOdj0gJJB&@M|$8ro}B{Cmoo0 zKCJi(H~k@C5`(#t9~2`=Z|;WoD^DK`!+0PnqRo%@(mRK`pFcly+MipVeSYT`?>PQE zU|&JlvD|yXHB-=wuwz3OxL-Y56qonwF2dYaY&# zEuSTrH|u;j%g1%(Jv2xJ1nvghHB;HT9@e2x*=ZbH2-k2OG)2Rv^EEs2R$!#3Bc~h( zp+ga;BfI#Z!O6?Tw;7y{OuPm2z6V3a+-hFs$Q;AS4CDz7y>es+w+5*k*}*G@UOBRZ zPa9l0vcgk}f6d^^ksbW22B#ylP(PICKD4=BwQCx^^#T8`q7j0QjLj~g|312;rz5ji zKKs!oPDf^;9-#Z$t7sGFcV?j;Xt%#bo49u5jNG%AbT z-L3tsRG7x;_||?_CAfC{<>144&q8G(f6jZM!P_*faOzrSG z9r_vY88P@82Pgk&!{=Os=e%(lc^@GjDHdgLOBVuvB0Uj!Whq9Qy1opG z>2M@H2`&O$O5teaO_cmXLnmFqOqjJ(PJlJyUo{Aj)AW0lF-qyj6n0RS5&Zx&A<`?> z&^9?0S0l-!X`2^~%Gdx&ztgWky6L3fHO^@l~NY&O?hdT(R2c<+U8_Pn(>pFNrW_A)9yn<@dw#$|0!jTEGnPNTI|V`7yYi^GtnidzEWHbrvgo*6qdY1O&H&@ObX>0Ej~QIY zf z2R=M-d*$nkest=yPuxk3UySR{HnXT37z{v->~r4jffjCzq|e1lZG1wGEyO?oR?!rKW9azTn;m zT9q_{SOxbUO^-yd#vs7}rGoq7G`^+|I%#113aoBYxyoSbs>-3acB!=O;O7{6rEP`l zq-Kr5`9*C~j6heTMRCq0P55SmQ`;_m-rx-G7U#Nlpv!g9N`;ucE(Z6MgWGkfq}##m zy0rf4eC)b(a3`*ldM3-n7~JQYm%)9mc^TYY+|JA3?&5Y{em9NldGAD@^D+q#j{Ir# zs81%{E+4yIZptoh=Vj9E;&xsp-FDs?==oddlfRpEGiiOq;410P@ST+C!r|kG!1+y7 z(v6Q#dn5gehJFQ}DT8yfd<}it2$OD&>%+mX(dWErR2K55Jny1Sd?i5?iyuOpIM>ZW zoL6%vq_jNsq`Og`HbqN%9cQgPOuF%E!e@oyLp`xHuWPl!X7gE-;My?`VH%T<==IbLoFwf~Um8;PI5pTZtr;dr*UeQA7obh3do)Q%d&}yQRLy7j8BxG?IGpPDkiPp~K*48Sq4sz| zi2G7m9#!WIoP#3S-0${^a%e(I3QYR?X<}$1jB{Z)=IgV{h*u48EE)-rtl?%lou(2%aYg0);t~xBoy$L3LxoRa2$LnwFETNBQFb)q@%i>mi z-T&tUHq+9Pfga09^`FlN?giJK@BaSKcmDLwrni34zVMHazrK?3@amSve4q$Sm70zl z^W_7KC)}SHXTU-g8)xjkU=Mq|ETPYCLgn7VcSKG5^$c298LWQT)A_><2493H3*!Un z%V?7a^8pr%)1rt|gDk`;|1PwNt9-!Vec$Y;fiSE}k_w_h5_9pmB}Cbv~f^laGzt%m-Zh zF+=Yj_HG6C4OGfrKkVs4=|hHI=L6*5st&!61E((e&2TTN)6C-VU-5BGN~C-VV~>-}yc z_;B78s4Ob{AV4`g#+Kge!)RsM9Px$&$un>< zku8A-r5D8hxU7%Zmi~p#5qRE#hIr3;8UVAKT(2(CxCnK3)uV6Iu*nVddsDctiamYr zl=q57$PNMd>tA-DYs<s5S^ILmszM;}ZK`g`2@_6yWT=&`eFfIK=Y`Op%qnV2l0D zq1#V-gC6$ms`~A*z6-hU)&+vRyvxW|DpGAuN*)))JcD2bJ?HY*UR&`-rPv2^`qjGQ zUg&sq!I?L{@_bw0ryl60+rEzqt5b!?D~1bIYBbHcuMZd=`7YDJRjBIynl}3x@VFEh z%~*v~QOC0e=NQPqMTf_JgX?fw#~Z_G9WNMq9Zu_b#o#)eYMgF<7jSs44yTzq{cc0g z&C8YNL4&JsYUCuJ$AFU$U0oqo#KcGz+8BU3t zACwc@H~o$(exyo3T+=r6@lnh1pjY&(6`|V3#8rDJ2q&b5bAdlTECN{^m7P&IVI9Gn zx~d9$FGOLblDLCcC{%I%D)RxZp6J?Q+%FHxQJ8KvlAb8YAQ)0N$zHjNz+k(|G>z1> zOgf3vox?k{%DH%37$X@Em*aYpm^I2Y+E1aDRMlhJu!Q)f!I>-EYu=;6Su$XL1)lp< z)$g79<73oOWeQ{b$ecfA-aE~Vt--_>0KZ06{od(j>;^N&efw7P-Wg`>OJ;04#=kd&Sjr&e>5t!-@p3{c(=Csz|`AJ zi`rMOU#$8k-JaR>Li(aj=Wah9cny3s5B+}fSK;_7nFK+D`ah9}L{n;b64QKCW6nSN zyIDFtXVW_wA<`W}D;0#b&G-bfikb^F&0~7sSLD=7Mu-g^Ki|I}>uo5Ry$_w&j5QE6 zcNpL(5{v!*I=6w{8+)MruvojIt+7}eq+PODdu5w}s^9a=Y4d9py^DR*CCRL!^*jrn z1z4Z?Z=|P8FYN1V-+j+L?e8Bv*gmsokFi@WL)*nYyLRCl-O?$