From eb3b66e787c902c8c5f502bc4e4cd5fa745d9fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gervais?= Date: Fri, 8 Apr 2016 08:06:55 -0400 Subject: [PATCH 1/2] =?UTF-8?q?PlanetManager,=20new=20prefab=20avec=20le?= =?UTF-8?q?=20pivot=20sur=20la=20pointe=20=C3=A0=200,0;=20seulement=20une?= =?UTF-8?q?=20rotation=20de=20l'object.=20=20Scaling=20pour=20le=20d=C3=A9?= =?UTF-8?q?placement,=20=20GetPlayerCoord=20prend=20en=20compte=20le=20sca?= =?UTF-8?q?ling=20de=20la=20pointe=20selon=20la=20position=20theta=20du=20?= =?UTF-8?q?player?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Prefabs/WedgePrefab00.prefab | Bin 0 -> 5716 bytes Assets/Prefabs/WedgePrefab00.prefab.meta | 8 ++ Assets/Scripts/PlanetManager.cs | 131 ++++++++++++++--------- Assets/Scripts/testRotate.cs | 17 +-- 4 files changed, 102 insertions(+), 54 deletions(-) create mode 100644 Assets/Prefabs/WedgePrefab00.prefab create mode 100644 Assets/Prefabs/WedgePrefab00.prefab.meta diff --git a/Assets/Prefabs/WedgePrefab00.prefab b/Assets/Prefabs/WedgePrefab00.prefab new file mode 100644 index 0000000000000000000000000000000000000000..479b5bd9ea25e223beb0b2e34ab7f0b592320a10 GIT binary patch literal 5716 zcmdT|U2I&%6`s3mI|SMUNJ^okus~=bl#r0{BYu)~96MQI$F3cR6p2>XyW`z!*7usb z*Cs}aSe1grQy;2IMIe+!h`&Y!MM5BisytMxDkXhNUU&#EtppDUg+3qzBK^KOclOR* zZ%}w-l*zsG&6)303G9jv-e=@r0#14ES@`?ZM#x_d9%4W4 z;Qcv2tZ{JHewxi3PRKLbb z?u+B~9bEVy!kGL&!Lt`X&$Ac*Pl=nJ=fAdtd+P7-&t8n_pX<=sy6?%)3?{hipX)og z_-7nr`e#EI{=f8o{v5bcW$=4y6g&BCDtANroR~=BhlXoG62-%Z5*@aJDBPjue>V~| zb!9hRCj6vfUWTIig(%cv0&vt{)-j&@{rXfA2VouWm1-2?vCm%`)2)V;sI&&FNwB1i zk)K^#|L5ng>^^(%6DQa0JKX>A%`oC{YDj`Z%>|pme>lOm9f!J<2CWlpxl5k~TS2*p zngyGu{tF%ktqnGHS;<_Eqd2_#f%C9=aa{a?6lbuxI4?2f8Eh`TBgGkPf0}-ijb+@+ZpRcX>)3 z+%xy*NsM`pHyK>1OAp%7sOmQ-qr^`T*Xod3R!^&^7{J6QqE=w=bUX!2V{)hwG;6VD zG>;(qO{7moQ8FIa@O}nHynXwI@$nZ9pFjE4v2p+9TaVof?0uv?W*)y@R6!Sfe8tC~eM>|AUU z$VOf+w%wPhnkmi;Y4?>?P5G*rfeh`*s%G9E1~T{EU40oq7Uz9npz#c|swsgJ1EX)U zswrPl)=mbp@JQfTJF}`O{`^BK$3V9JJO`bB#*lg$$ZYgK1NJ!HsaL8d@w{GJHEqCJ zy%Na6a}@j^fP?%cbX);+vFDT-+d$6nk5c^RF8Qxh{1!gTB2W8QWAo(S=*Uy=h7_lt ztX|?gJb6Fg-oYh7MJfL#gL93iN;uy(@B*+qh?fQb z6a4(gRPV2VvvvFVPJ;>V-b4BuOVK@rm}vh61K#nw&{er)c#Z-;0-XNYf(}bM_^}k< z+J(QG;&*r9uci354ld{T25|gS+tJzV`M#6l_Xw<}7UCe$lR8A=MC!csyglT%lBtGY zi=JvB3s35*#y3<3jQNR<1HZ}1sl}O=PAXw7sA@B2vajy)lWK!W8xqqkJsQ*-$wVB@ z7?DXm+tm0hi$ViUxBNQuz8MUL)kef`J5voRp;K0rN{dKkreUlh;7 zj*%!HYWQ)oTPH$H0emmUi616=Dj1CgVKBcqZ=|Mzr>SpnF^Q%RjQNLl2QA1|bJ$>5 zM=>%UvnEXVu|E$5af@H5D^Y+`(1_1b^Yv-IT2nwu7v{}@KyWB(VwbV1s~P2EJkksn z4yMoFs83OF9^J5Z)3xjb#z`%(_ps#f@Z0JAl;@@nE;YsS@V<-QJkKp1TypHc((y(<%lPPx z^{hWL7S)2;peo<9$SV2a{@4#&vq(uu74l1Uc)})?~mUON2>zJugw2Q$QG7axR<{CGP0aRKtms-h)MVp&u zYLK>whd4?8^mOn=nL7kL=$ec73c)A97tkeX$htS4levQ+t98w_KO3S7brS!-h36U5 zW!;hbm;IbufLb0L6XK`E^v__KnV4a?+SUwaVn1HKYcULxm5fF9Mgx=tO>#5Nr!e!Z@_ z^%c!*eg&$O)ysLS*ZP>^Ok9qhE&Ry1R9(GvT7BfU=gjx4wRdLkeB)TU<+Fat%gG(; z#$0{woy+9fJ5QhbW@mKuvkwZE>9aDfKZsd7>^z^n^jJAQ*$bN}d8tkOke&&AaAH@l imAo&d;;>OQ7gTl*O%-;qi_c_*wWHU17qjO<`Tqk297%@& literal 0 HcmV?d00001 diff --git a/Assets/Prefabs/WedgePrefab00.prefab.meta b/Assets/Prefabs/WedgePrefab00.prefab.meta new file mode 100644 index 0000000..aeeafff --- /dev/null +++ b/Assets/Prefabs/WedgePrefab00.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b78da08dfa398840862539a74cc2377 +timeCreated: 1460115450 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PlanetManager.cs b/Assets/Scripts/PlanetManager.cs index c0fdb53..37ced3d 100644 --- a/Assets/Scripts/PlanetManager.cs +++ b/Assets/Scripts/PlanetManager.cs @@ -26,10 +26,10 @@ public class PlanetManager : MonoBehaviour //float angle = i * Mathf.PI * 2 / NbCartiers * 360; - var wedgePos = GetPlanetCoordinatesFromPlayerXY(debutAngleTheta, 0); - wedgePos.x -= 8/ Mathf.PI * Mathf.Cos(debutAngleTheta * Mathf.PI / 180); - wedgePos.y -= 8/ Mathf.PI * Mathf.Sin(debutAngleTheta * Mathf.PI / 180); - var obj = Instantiate(WedgePrefab, wedgePos, Quaternion.Euler(0, 0, debutAngleTheta)); + //var wedgePos = GetPlanetCoordinatesFromPlayerXY(debutAngleTheta, 0); + // wedgePos.x -= Mathf.Cos(debutAngleTheta * Mathf.PI / 180); + //wedgePos.y -= Mathf.Sin(debutAngleTheta * Mathf.PI / 180); + var obj = Instantiate(WedgePrefab, new Vector3(0.0f,0.0f, 0.0f), Quaternion.Euler(0, 0, debutAngleTheta)); obj.name = "wedge_" + i; w.sprite = GameObject.Find(obj.name); wedges.Add(w); //pushes at end. @@ -54,56 +54,79 @@ public class PlanetManager : MonoBehaviour } - public void PushWedge(float thetaPlayerX) { - var index = GetWedgeIndex(thetaPlayerX); - var w = wedges[index]; + var index = GetWedgeIndex(thetaPlayerX); + var w = wedges[index]; - - - w.offset = w.offset - 0.5f; - if (w.offset < -1.0f) - w.offset = -1.0f; - - var angle = w.tMin; //w.tMax - TailleCartiersEnDegres/2; - - var normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0); - normalPos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180); - normalPos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180); - - var wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0); - wedgePos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Cos(angle * Mathf.PI / 180); - wedgePos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Sin(angle * Mathf.PI / 180); - - - w.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime); - - ///push back l'opposée - var indexOppose = GetWedgeOpposé(index); - var v = wedges[indexOppose]; - - v.offset = v.offset + 0.5f; - if (v.offset > 1.0f) - v.offset = 1.0f; - - angle = v.tMin; //w.tMax - TailleCartiersEnDegres/2; - - normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0); - normalPos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180); - normalPos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180); - - wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0); - wedgePos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Cos(angle * Mathf.PI / 180); - wedgePos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Sin(angle * Mathf.PI / 180); + w.offset = w.offset - 0.25f; + if (w.offset < 0.5f) + w.offset = 0.5f; - v.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime); + w.sprite.transform.localScale = new Vector3(w.offset, w.offset, 1); + //push back l'opposée + var indexOppose = GetWedgeOpposé(index); + var v = wedges[indexOppose]; + v.offset = v.offset + 0.25f; + if (v.offset > 1.5f) + v.offset = 1.5f; + + v.sprite.transform.localScale = new Vector3(v.offset, v.offset, 1); } + //public void PushWedge(float thetaPlayerX) + //{ + // var index = GetWedgeIndex(thetaPlayerX); + // var w = wedges[index]; + + + + // w.offset = w.offset - 0.5f; + // if (w.offset < -1.0f) + // w.offset = -1.0f; + + // var angle = w.tMin; //w.tMax - TailleCartiersEnDegres/2; + + // var normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0); + // normalPos.x -= Mathf.Cos(angle * Mathf.PI / 180); + // normalPos.y -= Mathf.Sin(angle * Mathf.PI / 180); + + // var wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0); + // wedgePos.x -= Mathf.Cos(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Cos(angle * Mathf.PI / 180); + // wedgePos.y -= Mathf.Sin(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Sin(angle * Mathf.PI / 180); + + + // w.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime); + + // ///push back l'opposée + // var indexOppose = GetWedgeOpposé(index); + // var v = wedges[indexOppose]; + + // v.offset = v.offset + 0.5f; + // if (v.offset > 1.0f) + // v.offset = 1.0f; + + // angle = v.tMin; //w.tMax - TailleCartiersEnDegres/2; + + // normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0); + // normalPos.x -= Mathf.Cos(angle * Mathf.PI / 180); + // normalPos.y -= Mathf.Sin(angle * Mathf.PI / 180); + + // wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0); + // wedgePos.x -= Mathf.Cos(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Cos(angle * Mathf.PI / 180); + // wedgePos.y -= Mathf.Sin(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Sin(angle * Mathf.PI / 180); + + + // v.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime); + + + //} + + /// /// Radius sphere est scale/2 /// @@ -113,14 +136,26 @@ public class PlanetManager : MonoBehaviour return gameObject.transform.localScale.x / 2.0f; } + /// + /// Radius sphere est scale/2 + /// + /// + public float GetPlanetRadius(float thetaPlayerX) + { + var wedge = GetWedgeFromTheta(thetaPlayerX); + return GetPlanetRadius() * wedge.offset; + } + + public Vector3 GetPlanetCoordinatesFromPlayerXY(float playerLocalX, float playerLocalY) { var theta = playerLocalX; - var x = GetPlanetRadius() * Math.Cos(theta * Math.PI / 180); - var y = GetPlanetRadius() * Math.Sin(theta * Math.PI / 180) + playerLocalY; + var wedgeRadius = GetPlanetRadius(playerLocalX); + var x = wedgeRadius * Mathf.Cos(theta * Mathf.PI / 180); + var y = wedgeRadius * Mathf.Sin(theta * Mathf.PI / 180) + playerLocalY; - return new Vector3((float)x, (float)y, 0); + return new Vector3(x, y, 0); } @@ -160,7 +195,7 @@ public class PlanetManager : MonoBehaviour /// public class Wedge { - public float offset = 0; //valeurs entre -1 et 1; -1 étant renfoncé, 0 position normale, et 1 vers l'extérieur + public float offset = 1.0f; //valeurs entre -1 et 1; -1 étant renfoncé, 0 position normale, et 1 vers l'extérieur public float tMin = 0; //theta min et theta max : angle thetat de début et fin du cartier; public float tMax = 0; diff --git a/Assets/Scripts/testRotate.cs b/Assets/Scripts/testRotate.cs index 4560318..55bbf88 100644 --- a/Assets/Scripts/testRotate.cs +++ b/Assets/Scripts/testRotate.cs @@ -60,16 +60,21 @@ public class testRotate : MonoBehaviour { { var speed = 13.2f; var theta = Time.realtimeSinceStartup * speed % 360.0f; // Position X du player = angle theta - var r = 4.5f; //sphereradius - // XY coordinates - var x = r * Mathf.Cos(theta * Mathf.PI / 180); - var y = r * Mathf.Sin(theta * Mathf.PI / 180); // + y0 du player + var planet = GameObject.Find("Planet").gameObject.GetComponent(); + + // var r = planet.GetPlanetRadius(theta); + + + // XY coordinates + // var x = r * Mathf.Cos(theta * Mathf.PI / 180); + // var y = r * Mathf.Sin(theta * Mathf.PI / 180); // + y0 du player var player = GameObject.Find("CubePlayer").gameObject; - player.transform.position = Vector3.Lerp(player.transform.position, new Vector3(x, y, 0 ), Time.deltaTime); - + //player.transform.position = Vector3.Lerp(player.transform.position, new Vector3(x, y, 0 ), Time.deltaTime); + player.transform.position = Vector3.Lerp(player.transform.position, + planet.GetPlanetCoordinatesFromPlayerXY(theta, 0f), Time.fixedDeltaTime); } } From 07e970554d80e1ae27f7346082a2ffc7306de536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gervais?= Date: Fri, 8 Apr 2016 08:11:29 -0400 Subject: [PATCH 2/2] fixed merge --- Assets/Prefabs/WedgePrefab00.prefab | Bin 5716 -> 2568 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Assets/Prefabs/WedgePrefab00.prefab b/Assets/Prefabs/WedgePrefab00.prefab index 479b5bd9ea25e223beb0b2e34ab7f0b592320a10..f46b5dfdf6c0a33cafc4fa9321285c6484f5d64f 100644 GIT binary patch literal 2568 zcmdT`ZExBz5dO}ua6h!43W`HYfNzYxEK+GJDBY@QLQZ0Wr^H5%>C2}5_nprqO-uKp zX__{KqWEl|FV8*qocC`>lXF5lw6%XdIwO0VJz`ik+(=;_yJ;s;#i8#}I&8JuZ97ZJ z0X^~u-G1wg75p;(#1k`Y5mGGN`&*In)0}1Hka%dm(tOF{E2gvl54?o@tLPLT$e)0AqjB%SQTp}!M_cpO@fAlzz>72Z+Ewe zPyNOWjQsw<@4E=j*(29g$QSTsL-LNN8F$g+Dc3BU87*WsBy$NEWjsZDl-NjKe$oZI zoA7e=%Ne{roL-L5v&-lCtVl>uX zsZxArZDZ98yaJ=XfIEur;0f-wj>apIr%;owWNP+4)l0EBWoBiIqMqDV>r^RosZ&=k zTUoFGW2yZ!0Ha7X;P`!jX=e}~xrB5)FF+KxP@LP;{UXrh!$;)S4y=xuF4Whs1*IYf zm0Y!EYb^|)atR556rjr;>HS+QZh(9uS)B9KN|@~iV^*5kilyql?gUewa1gl{)(HdE z2VE~;Fp+xU5n!Ed1o*@r(0K61yL~+*=5Y;V-=<}@iA!!GnTmwN@feU3-#5%8D+}^2 zt>+~_7um{OX%*XDPN$}PnL~?%%0&CTWSKn&U7}?qla+dPXiKUs$J6D2B@P*So@S0>W-)N-KLr=7S7i;(490{a{sjDL}jzXS#Ev< DJpKwO literal 5716 zcmdT|U2I&%6`s3mI|SMUNJ^okus~=bl#r0{BYu)~96MQI$F3cR6p2>XyW`z!*7usb z*Cs}aSe1grQy;2IMIe+!h`&Y!MM5BisytMxDkXhNUU&#EtppDUg+3qzBK^KOclOR* zZ%}w-l*zsG&6)303G9jv-e=@r0#14ES@`?ZM#x_d9%4W4 z;Qcv2tZ{JHewxi3PRKLbb z?u+B~9bEVy!kGL&!Lt`X&$Ac*Pl=nJ=fAdtd+P7-&t8n_pX<=sy6?%)3?{hipX)og z_-7nr`e#EI{=f8o{v5bcW$=4y6g&BCDtANroR~=BhlXoG62-%Z5*@aJDBPjue>V~| zb!9hRCj6vfUWTIig(%cv0&vt{)-j&@{rXfA2VouWm1-2?vCm%`)2)V;sI&&FNwB1i zk)K^#|L5ng>^^(%6DQa0JKX>A%`oC{YDj`Z%>|pme>lOm9f!J<2CWlpxl5k~TS2*p zngyGu{tF%ktqnGHS;<_Eqd2_#f%C9=aa{a?6lbuxI4?2f8Eh`TBgGkPf0}-ijb+@+ZpRcX>)3 z+%xy*NsM`pHyK>1OAp%7sOmQ-qr^`T*Xod3R!^&^7{J6QqE=w=bUX!2V{)hwG;6VD zG>;(qO{7moQ8FIa@O}nHynXwI@$nZ9pFjE4v2p+9TaVof?0uv?W*)y@R6!Sfe8tC~eM>|AUU z$VOf+w%wPhnkmi;Y4?>?P5G*rfeh`*s%G9E1~T{EU40oq7Uz9npz#c|swsgJ1EX)U zswrPl)=mbp@JQfTJF}`O{`^BK$3V9JJO`bB#*lg$$ZYgK1NJ!HsaL8d@w{GJHEqCJ zy%Na6a}@j^fP?%cbX);+vFDT-+d$6nk5c^RF8Qxh{1!gTB2W8QWAo(S=*Uy=h7_lt ztX|?gJb6Fg-oYh7MJfL#gL93iN;uy(@B*+qh?fQb z6a4(gRPV2VvvvFVPJ;>V-b4BuOVK@rm}vh61K#nw&{er)c#Z-;0-XNYf(}bM_^}k< z+J(QG;&*r9uci354ld{T25|gS+tJzV`M#6l_Xw<}7UCe$lR8A=MC!csyglT%lBtGY zi=JvB3s35*#y3<3jQNR<1HZ}1sl}O=PAXw7sA@B2vajy)lWK!W8xqqkJsQ*-$wVB@ z7?DXm+tm0hi$ViUxBNQuz8MUL)kef`J5voRp;K0rN{dKkreUlh;7 zj*%!HYWQ)oTPH$H0emmUi616=Dj1CgVKBcqZ=|Mzr>SpnF^Q%RjQNLl2QA1|bJ$>5 zM=>%UvnEXVu|E$5af@H5D^Y+`(1_1b^Yv-IT2nwu7v{}@KyWB(VwbV1s~P2EJkksn z4yMoFs83OF9^J5Z)3xjb#z`%(_ps#f@Z0JAl;@@nE;YsS@V<-QJkKp1TypHc((y(<%lPPx z^{hWL7S)2;peo<9$SV2a{@4#&vq(uu74l1Uc)})?~mUON2>zJugw2Q$QG7axR<{CGP0aRKtms-h)MVp&u zYLK>whd4?8^mOn=nL7kL=$ec73c)A97tkeX$htS4levQ+t98w_KO3S7brS!-h36U5 zW!;hbm;IbufLb0L6XK`E^v__KnV4a?+SUwaVn1HKYcULxm5fF9Mgx=tO>#5Nr!e!Z@_ z^%c!*eg&$O)ysLS*ZP>^Ok9qhE&Ry1R9(GvT7BfU=gjx4wRdLkeB)TU<+Fat%gG(; z#$0{woy+9fJ5QhbW@mKuvkwZE>9aDfKZsd7>^z^n^jJAQ*$bN}d8tkOke&&AaAH@l imAo&d;;>OQ7gTl*O%-;qi_c_*wWHU17qjO<`Tqk297%@&