diff --git a/Assets/Resources/InGame/Pause.png b/Assets/Resources/InGame/Pause.png deleted file mode 100644 index 8b73417..0000000 Binary files a/Assets/Resources/InGame/Pause.png and /dev/null differ diff --git a/Assets/Resources/InGame/PauseIcon.png b/Assets/Resources/InGame/PauseIcon.png new file mode 100644 index 0000000..6d28d7d Binary files /dev/null and b/Assets/Resources/InGame/PauseIcon.png differ diff --git a/Assets/Resources/InGame/Play.png.meta b/Assets/Resources/InGame/PauseIcon.png.meta similarity index 91% rename from Assets/Resources/InGame/Play.png.meta rename to Assets/Resources/InGame/PauseIcon.png.meta index ab0e6bf..777aae2 100644 --- a/Assets/Resources/InGame/Play.png.meta +++ b/Assets/Resources/InGame/PauseIcon.png.meta @@ -1,10 +1,10 @@ fileFormatVersion: 2 -guid: c51e366cbbc7cd534a9788dd491e8086 +guid: 7bbd15eb9b940f4c59561753a3d516ce TextureImporter: internalIDToNameTable: - first: - 213: 6208176927266180224 - second: Play_0 + 213: -2073137460773038770 + second: PauseIcon_0 externalObjects: {} serializedVersion: 13 mipmaps: @@ -113,13 +113,13 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: Play_0 + name: PauseIcon_0 rect: serializedVersion: 2 - x: 7 - y: 7 + x: 17 + y: 19 width: 239 - height: 238 + height: 218 alignment: 0 pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} @@ -128,8 +128,8 @@ TextureImporter: physicsShape: [] tessellationDetail: -1 bones: [] - spriteID: 08c0a74e500e72650800000000000000 - internalID: 6208176927266180224 + spriteID: e455110a67cba33e0800000000000000 + internalID: -2073137460773038770 vertices: [] indices: edges: [] @@ -147,8 +147,7 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: - Play_0: 6208176927266180224 + nameFileIdTable: {} mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Resources/InGame/Play.png b/Assets/Resources/InGame/Play.png deleted file mode 100644 index a7191b6..0000000 Binary files a/Assets/Resources/InGame/Play.png and /dev/null differ diff --git a/Assets/Resources/InGame/PlayIcon.png b/Assets/Resources/InGame/PlayIcon.png new file mode 100644 index 0000000..cfbbca1 Binary files /dev/null and b/Assets/Resources/InGame/PlayIcon.png differ diff --git a/Assets/Resources/InGame/Pause.png.meta b/Assets/Resources/InGame/PlayIcon.png.meta similarity index 91% rename from Assets/Resources/InGame/Pause.png.meta rename to Assets/Resources/InGame/PlayIcon.png.meta index 6322d20..6779f43 100644 --- a/Assets/Resources/InGame/Pause.png.meta +++ b/Assets/Resources/InGame/PlayIcon.png.meta @@ -1,10 +1,10 @@ fileFormatVersion: 2 -guid: 4874b4932ea8df273aafe2c64ec3e05a +guid: 23d8ef624fc9e5f3fa3f695b9385f5cc TextureImporter: internalIDToNameTable: - first: - 213: -8878088185706026076 - second: pause_0 + 213: -8770034739519435172 + second: PlayIcon_0 externalObjects: {} serializedVersion: 13 mipmaps: @@ -113,13 +113,13 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: pause_0 + name: PlayIcon_0 rect: serializedVersion: 2 - x: 0 - y: 0 - width: 256 - height: 256 + x: 26 + y: 27 + width: 206 + height: 199 alignment: 0 pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} @@ -128,8 +128,8 @@ TextureImporter: physicsShape: [] tessellationDetail: -1 bones: [] - spriteID: 4ab666e45d1bac480800000000000000 - internalID: -8878088185706026076 + spriteID: c5ecb1bbed39a4680800000000000000 + internalID: -8770034739519435172 vertices: [] indices: edges: [] @@ -147,8 +147,7 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: - pause_0: -8878088185706026076 + nameFileIdTable: {} mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Resources/Prefabs/Ground.prefab b/Assets/Resources/Prefabs/Ground.prefab new file mode 100644 index 0000000..56829cf --- /dev/null +++ b/Assets/Resources/Prefabs/Ground.prefab @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4469289624494365187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8964879669643113576} + - component: {fileID: 5612594502755166219} + - component: {fileID: 1469510466419132587} + m_Layer: 0 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8964879669643113576 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4469289624494365187} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -15.92, y: -5.7, z: 0} + m_LocalScale: {x: 1, y: 0.8581, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &5612594502755166219 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4469289624494365187} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2257217325195158302, guid: a192a62ef32304b4182909c80a175f39, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 5.12} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &1469510466419132587 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4469289624494365187} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 5.12, y: 5.12} + newSize: {x: 5.12, y: 5.12} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 5.12, y: 5.12} + m_EdgeRadius: 0 diff --git a/Assets/Resources/Prefabs/Ground.prefab.meta b/Assets/Resources/Prefabs/Ground.prefab.meta new file mode 100644 index 0000000..869d44d --- /dev/null +++ b/Assets/Resources/Prefabs/Ground.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 052f6240a620828cea410bf389122be0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/ObstacleBlock.prefab b/Assets/Resources/Prefabs/ObstacleBlock.prefab index 07c1598..a85d693 100644 --- a/Assets/Resources/Prefabs/ObstacleBlock.prefab +++ b/Assets/Resources/Prefabs/ObstacleBlock.prefab @@ -202,7 +202,7 @@ BoxCollider2D: m_UsedByEffector: 0 m_CompositeOperation: 0 m_CompositeOrder: 0 - m_Offset: {x: -0.0040085316, y: -0.985047} + m_Offset: {x: -0.0040085316, y: -0.35639262} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0, y: 0} @@ -212,7 +212,7 @@ BoxCollider2D: drawMode: 0 adaptiveTiling: 0 m_AutoTiling: 0 - m_Size: {x: 5.1211915, y: 2.672097} + m_Size: {x: 5.1211915, y: 4.4239116} m_EdgeRadius: 0 --- !u!1 &4179475610744468388 GameObject: @@ -280,7 +280,7 @@ BoxCollider2D: m_UsedByEffector: 0 m_CompositeOperation: 0 m_CompositeOrder: 0 - m_Offset: {x: -0.004009247, y: 1.7748187} + m_Offset: {x: 0.0038814545, y: 2.4709496} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0, y: 0} @@ -290,5 +290,5 @@ BoxCollider2D: drawMode: 0 adaptiveTiling: 0 m_AutoTiling: 0 - m_Size: {x: 5.121194, y: 1.4569769} + m_Size: {x: 5.1474953, y: 0.20310307} m_EdgeRadius: 0 diff --git a/Assets/Resources/Prefabs/ShipPortal.prefab b/Assets/Resources/Prefabs/ShipPortal.prefab index cac2177..3ba5c21 100644 --- a/Assets/Resources/Prefabs/ShipPortal.prefab +++ b/Assets/Resources/Prefabs/ShipPortal.prefab @@ -122,7 +122,7 @@ BoxCollider2D: m_UsedByEffector: 0 m_CompositeOperation: 0 m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} + m_Offset: {x: 0.0058231354, y: 0.09898627} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} @@ -132,5 +132,5 @@ BoxCollider2D: drawMode: 0 adaptiveTiling: 0 m_AutoTiling: 0 - m_Size: {x: 0.6, y: 1.06} + m_Size: {x: 0.97265434, y: 3.202761} m_EdgeRadius: 0 diff --git a/Assets/Scenes/LevelScene.unity b/Assets/Scenes/LevelScene.unity index 675e8e8..5877198 100644 --- a/Assets/Scenes/LevelScene.unity +++ b/Assets/Scenes/LevelScene.unity @@ -543,6 +543,7 @@ MonoBehaviour: playerObject: {fileID: 1267397455} normalMinYFollow: 2 shipMinYFollow: 6 + smoothSpeed: 5 --- !u!1 &521952199 GameObject: m_ObjectHideFlags: 0 @@ -6220,7 +6221,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: -8878088185706026076, guid: 4874b4932ea8df273aafe2c64ec3e05a, type: 3} + m_Sprite: {fileID: -2073137460773038770, guid: 7bbd15eb9b940f4c59561753a3d516ce, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -6273,140 +6274,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1235900592 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1235900594} - - component: {fileID: 1235900593} - - component: {fileID: 1235900595} - m_Layer: 0 - m_Name: Ground - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!212 &1235900593 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235900592} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: -2257217325195158302, guid: a192a62ef32304b4182909c80a175f39, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.12, y: 5.12} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!4 &1235900594 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235900592} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 353.61, y: -5.69, z: 0} - m_LocalScale: {x: 150, y: 0.8581, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!61 &1235900595 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235900592} - m_Enabled: 1 - serializedVersion: 3 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_CompositeOperation: 0 - m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} - m_SpriteTilingProperty: - border: {x: 0, y: 0, z: 0, w: 0} - pivot: {x: 0.5, y: 0.5} - oldSize: {x: 5.12, y: 5.12} - newSize: {x: 5.12, y: 5.12} - adaptiveTilingThreshold: 0.5 - drawMode: 0 - adaptiveTiling: 0 - m_AutoTiling: 0 - m_Size: {x: 5.12, y: 5.12} - m_EdgeRadius: 0 --- !u!1 &1267397455 GameObject: m_ObjectHideFlags: 0 @@ -6451,9 +6318,9 @@ Rigidbody2D: serializedVersion: 2 m_Bits: 0 m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 0 + m_SleepingMode: 0 + m_CollisionDetection: 1 + m_Constraints: 4 --- !u!212 &1267397457 SpriteRenderer: m_ObjectHideFlags: 0 @@ -7158,7 +7025,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 6208176927266180224, guid: c51e366cbbc7cd534a9788dd491e8086, type: 3} + m_Sprite: {fileID: -8770034739519435172, guid: 23d8ef624fc9e5f3fa3f695b9385f5cc, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -7450,6 +7317,7 @@ MonoBehaviour: levelsLoader: {fileID: 0} audioSource: {fileID: 1999482188} progressionText: {fileID: 245275149} + groundWidth: 1 --- !u!4 &1999482187 Transform: m_ObjectHideFlags: 0 @@ -7603,7 +7471,6 @@ SceneRoots: m_Roots: - {fileID: 519420032} - {fileID: 1267397458} - - {fileID: 1235900594} - {fileID: 1999482187} - {fileID: 1371294550} - {fileID: 521952202} diff --git a/Assets/Scripts/GameMode/NormalGameMode.cs b/Assets/Scripts/GameMode/NormalGameMode.cs index b266e2c..cced43d 100644 --- a/Assets/Scripts/GameMode/NormalGameMode.cs +++ b/Assets/Scripts/GameMode/NormalGameMode.cs @@ -1,30 +1,38 @@ using UnityEngine; using UnityEngine.SceneManagement; + public class NormalGameMode : IGameMode { private const float HorizontalSpeed = 8.6f; private const float JumpForce = 26.6581f; private const KeyCode JumpKey = KeyCode.Space; + private bool isRotating = false; + private float targetRotationAngle = 0f; + private readonly float rotationSpeed = 360f; public void Update(Player player) { player.RigidBody.linearVelocity = new Vector2(HorizontalSpeed * player.SpeedMultiplier, player.RigidBody.linearVelocity.y); - if (player.HasStarted && player.IsColliding && Input.GetKey(JumpKey) && player.CanJump) + + if (player.IsColliding && Input.GetKey(JumpKey) && !isRotating) { Jump(player); } + if (isRotating) + { + PerformRotation(player); + } + if (!IsJumping(player)) { - AlignRotation(player); player.Particle.gameObject.SetActive(true); } else { player.Particle.gameObject.SetActive(false); - player.Transform.Rotate(Vector3.back * 360 * Time.deltaTime); } UpdateParticlePositionAndRotation(player); @@ -35,6 +43,22 @@ public class NormalGameMode : IGameMode player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0); player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse); player.LevelsLoader.IncreaseTotalJumps(); + isRotating = true; + targetRotationAngle = player.transform.eulerAngles.z - 90f; + } + + private void PerformRotation(Player player) + { + float rotationThisFrame = rotationSpeed * Time.deltaTime; + float newRotation = Mathf.MoveTowardsAngle(player.transform.eulerAngles.z, targetRotationAngle, rotationThisFrame); + player.transform.rotation = Quaternion.Euler(0, 0, newRotation); + + if (Mathf.Abs(Mathf.DeltaAngle(newRotation, targetRotationAngle)) < 0.1f) + { + player.transform.rotation = Quaternion.Euler(0, 0, targetRotationAngle); + isRotating = false; + AlignRotation(player); + } } private bool IsJumping(Player player) @@ -44,21 +68,21 @@ public class NormalGameMode : IGameMode private void AlignRotation(Player player) { - Vector3 rotation = player.Transform.rotation.eulerAngles; + Vector3 rotation = player.transform.eulerAngles; rotation.z = Mathf.Round(rotation.z / 90) * 90; - player.Transform.rotation = Quaternion.Euler(rotation); + player.transform.rotation = Quaternion.Euler(rotation); } private void UpdateParticlePositionAndRotation(Player player) { - player.Particle.transform.position = player.Transform.position + new Vector3(-0.19f, -0.64f, -10); + player.Particle.transform.position = + player.transform.position + new Vector3(-0.19f, -0.64f, -10); player.Particle.transform.rotation = Quaternion.Euler(0, 0, 150.464f); } public void OnCollisionEnter(Player player, Collision2D collision) { player.IsColliding = true; - player.CanJump = true; if (collision.gameObject.CompareTag("Kill")) { diff --git a/Assets/Scripts/GameMode/ShipGameMode.cs b/Assets/Scripts/GameMode/ShipGameMode.cs index 5838a61..0a33575 100644 --- a/Assets/Scripts/GameMode/ShipGameMode.cs +++ b/Assets/Scripts/GameMode/ShipGameMode.cs @@ -16,7 +16,7 @@ public class ShipGameMode : IGameMode bool jumpPressed = Input.GetKey(JumpKey); - if (player.HasStarted && jumpPressed) + if (jumpPressed) { Jump(player); @@ -49,7 +49,9 @@ public class ShipGameMode : IGameMode { float angle = player.Transform.rotation.eulerAngles.z; if (angle > 180f) + { angle -= 360f; + } return angle; } diff --git a/Assets/Scripts/LevelLoader.cs b/Assets/Scripts/LevelLoader.cs index a1b04ad..5986360 100644 --- a/Assets/Scripts/LevelLoader.cs +++ b/Assets/Scripts/LevelLoader.cs @@ -7,6 +7,7 @@ public class LevelLoader : MonoBehaviour public LevelsLoader levelsLoader; public AudioSource audioSource; public Text progressionText; + private readonly float groundY = -6.034f; private GameObject GetPrefab(string type) { @@ -43,6 +44,12 @@ public class LevelLoader : MonoBehaviour instance.transform.localScale = new Vector3(newScaleX, newScaleY, originalScale.z); } + + GameObject groundPrefab = GetPrefab("Ground"); + GameObject groundInstance = Instantiate(groundPrefab, new Vector3(current.LastX / 2, groundY, 0), Quaternion.identity); + float groundWidth = current.LastX; + groundInstance.transform.localScale = new Vector3(groundWidth / 5f * 2, 1, 1); + Instantiate(GetPrefab("WinnerWall"), new Vector3(current.LastX, 0, 0), Quaternion.Euler(0, 0, 90)); } diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs index d00cc99..28351d5 100644 --- a/Assets/Scripts/Player.cs +++ b/Assets/Scripts/Player.cs @@ -9,8 +9,6 @@ public class Player : MonoBehaviour public LevelsLoader LevelsLoader { get; private set; } public SpriteRenderer SpriteRenderer { get; private set; } public bool IsColliding { get; set; } = true; - public bool HasStarted { get; private set; } = false; - public bool CanJump { get; set; } = true; public IGameMode CurrentGameMode { get; set; } public float SpeedMultiplier = 1f; @@ -30,16 +28,9 @@ public class Player : MonoBehaviour mainModule.simulationSpace = ParticleSystemSimulationSpace.World; Particle.transform.parent = null; - Invoke(nameof(EnableInput), 0.1f); - CurrentGameMode = new NormalGameMode(); } - private void EnableInput() - { - HasStarted = true; - } - public void Update() { CurrentGameMode.Update(this); diff --git a/Assets/Scripts/PlayerCamera.cs b/Assets/Scripts/PlayerCamera.cs index b0fe43c..b07516f 100644 --- a/Assets/Scripts/PlayerCamera.cs +++ b/Assets/Scripts/PlayerCamera.cs @@ -5,6 +5,7 @@ public class PlayerCamera : MonoBehaviour public GameObject playerObject; public float normalMinYFollow = 2.0f; public float shipMinYFollow = 6.0f; + public float smoothSpeed = 5.0f; private float initialY; private void Start() @@ -28,6 +29,8 @@ public class PlayerCamera : MonoBehaviour targetY = playerObject.transform.position.y; } - transform.position = new Vector3(playerObject.transform.position.x, targetY, transform.position.z); + float newY = Mathf.Lerp(transform.position.y, targetY, smoothSpeed * Time.deltaTime); + + transform.position = new Vector3(playerObject.transform.position.x, newY, transform.position.z); } }