From 9a6f7f7a3790ab889aac64701b1c2f0174f6ce8f Mon Sep 17 00:00:00 2001 From: Giovani Date: Sat, 1 Feb 2020 13:27:07 -0500 Subject: [PATCH 1/2] Finished making successful path for event controls --- Assets/Model.meta | 8 ++ Assets/Model/EventControlTile.cs | 26 ++++ Assets/Model/EventControlTile.cs.meta | 11 ++ Assets/Scenes/LevelOne.unity | 5 +- Assets/Scripts/EventControls.cs | 130 ++++++++++++++++++ ...sDisplay.cs.meta => EventControls.cs.meta} | 0 Assets/Scripts/EventControlsDisplay.cs | 71 ---------- Assets/Scripts/Player.cs | 2 +- .../Sprites/Controls/Control W Success.asset | 36 +++++ .../Controls/Control W Success.asset.meta | 8 ++ Assets/Sprites/Palette/Event Controls.prefab | 21 ++- 11 files changed, 239 insertions(+), 79 deletions(-) create mode 100644 Assets/Model.meta create mode 100644 Assets/Model/EventControlTile.cs create mode 100644 Assets/Model/EventControlTile.cs.meta create mode 100644 Assets/Scripts/EventControls.cs rename Assets/Scripts/{EventControlsDisplay.cs.meta => EventControls.cs.meta} (100%) delete mode 100644 Assets/Scripts/EventControlsDisplay.cs create mode 100644 Assets/Sprites/Controls/Control W Success.asset create mode 100644 Assets/Sprites/Controls/Control W Success.asset.meta diff --git a/Assets/Model.meta b/Assets/Model.meta new file mode 100644 index 0000000..f22c276 --- /dev/null +++ b/Assets/Model.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 477280fac62d2934f9d0aa49bedf3251 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Model/EventControlTile.cs b/Assets/Model/EventControlTile.cs new file mode 100644 index 0000000..95fd97f --- /dev/null +++ b/Assets/Model/EventControlTile.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.Tilemaps; + +namespace Assets.Model +{ + public class EventControlTile + { + public KeyCode keyCode; + public Tile tile; + public Tile successTile; + public Vector3Int position; + + public EventControlTile(KeyCode keyCode, Tile tile, Tile successTile, Vector3Int position) + { + this.keyCode = keyCode; + this.tile = tile; + this.successTile = successTile; + this.position = position; + } + } +} diff --git a/Assets/Model/EventControlTile.cs.meta b/Assets/Model/EventControlTile.cs.meta new file mode 100644 index 0000000..fff2c4e --- /dev/null +++ b/Assets/Model/EventControlTile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 651afb7ac1f7a324b8b21db2b04ff151 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/LevelOne.unity b/Assets/Scenes/LevelOne.unity index ea191cf..bcf44c8 100644 --- a/Assets/Scenes/LevelOne.unity +++ b/Assets/Scenes/LevelOne.unity @@ -167,9 +167,10 @@ MonoBehaviour: m_EditorClassIdentifier: camera: {fileID: 1337282922} tile: {fileID: 11400000, guid: 7ece7857530facb42b843eed2526c86a, type: 2} + successTile: {fileID: 11400000, guid: 6cf7a50810d16f2468acc06180743d07, type: 2} framesPerControlTile: 15 nextControlYOffset: 4 - nextControlXOffset: 1.5 + nextControlXOffset: 2.5 --- !u!483693784 &1491656 TilemapRenderer: m_ObjectHideFlags: 0 @@ -389,7 +390,7 @@ MonoBehaviour: m_EditorClassIdentifier: player: {fileID: 1671840916} offsetY: 2 - interpolate: 0.1 + interpolate: 0.6 --- !u!4 &1146013793 stripped Transform: m_CorrespondingSourceObject: {fileID: 5711328081315814049, guid: fe8fb0c1c30f84b43885e84de26e0f11, diff --git a/Assets/Scripts/EventControls.cs b/Assets/Scripts/EventControls.cs new file mode 100644 index 0000000..08dd965 --- /dev/null +++ b/Assets/Scripts/EventControls.cs @@ -0,0 +1,130 @@ +using Assets.Model; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Tilemaps; + +public class EventControls : MonoBehaviour +{ + [SerializeField] private Camera camera; + [SerializeField] private Tile tile; + [SerializeField] private Tile successTile; + [SerializeField] private float framesPerControlTile = 15; + [SerializeField] private float nextControlYOffset = 0; + [SerializeField] private float nextControlXOffset = 0; + [SerializeField] private float tileMapClearDelayInSeconds = 0.5f; + + private Tilemap tilemap; + + /* For drawing event control tiles */ + private Vector3Int? initialCameraPosition; + private int maxNumberOfControlTiles = 3; + private int numberOfControlTilesSet = 0; + private int nextControlAccumalator = 0; + + private bool eventDrawn = false; + private bool eventTriggered = false; + private int eventCycleInSeconds = 4; + private int eventCycleAccumalator = 0; + private int tileMapClearDelayAccumalator = 0; + private EventControlTile currentEventControl; + + private Queue eventControlTilesInCycle; + + private int framesPerSecond => 60; + + private void Start() + { + tilemap = GetComponent(); + eventControlTilesInCycle = new Queue(); + eventTriggered = true; // TODO: TEST + } + + private void Update() + { + if (eventTriggered) + { + SetTile(); + SetTileMapPosition(); + } + else + { + nextControlAccumalator = 0; + } + + if (eventDrawn && eventTriggered) + { + if (currentEventControl == null) + currentEventControl = eventControlTilesInCycle.Dequeue(); + + if (Input.GetKeyDown(currentEventControl.keyCode)) + { + tilemap.SetTile(currentEventControl.position, currentEventControl.successTile); + + currentEventControl = null; + if (eventControlTilesInCycle.Count == 0) + { + eventTriggered = false; + } + } + } + + if (eventDrawn && !eventTriggered) + { + if (tileMapClearDelayAccumalator >= tileMapClearDelayInSeconds * framesPerSecond) + { + tilemap.ClearAllTiles(); + tileMapClearDelayAccumalator = 0; + eventDrawn = false; + } + else + { + tileMapClearDelayAccumalator++; + } + } + } + + private void SetTile() + { + if (nextControlAccumalator >= framesPerControlTile && numberOfControlTilesSet < maxNumberOfControlTiles) + { + if (initialCameraPosition == null) + initialCameraPosition = GetCameraPosition(); + + // Store tiles for event cycle + var eventControlTile = new EventControlTile(KeyCode.W, tile, successTile, GetNextTilePosition()); /* TODO: Hard code */ + eventControlTilesInCycle.Enqueue(eventControlTile); + + tilemap.SetTile(eventControlTile.position, tile); + + nextControlAccumalator = 0; + numberOfControlTilesSet++; + } + else if (numberOfControlTilesSet == maxNumberOfControlTiles) + { + initialCameraPosition = null; + eventDrawn = true; + } + + nextControlAccumalator++; + } + + private Vector3Int GetCameraPosition() + { + return new Vector3Int((int)camera.transform.position.x, + (int)camera.transform.position.y, + (int)camera.transform.position.z); + } + + private Vector3Int GetNextTilePosition() + { + return (initialCameraPosition + new Vector3Int(numberOfControlTilesSet, 0, 0)) + .GetValueOrDefault(); + } + + private void SetTileMapPosition() + { + transform.position = camera.transform.position + + new Vector3(nextControlXOffset, nextControlYOffset, 0); // offset + } +} diff --git a/Assets/Scripts/EventControlsDisplay.cs.meta b/Assets/Scripts/EventControls.cs.meta similarity index 100% rename from Assets/Scripts/EventControlsDisplay.cs.meta rename to Assets/Scripts/EventControls.cs.meta diff --git a/Assets/Scripts/EventControlsDisplay.cs b/Assets/Scripts/EventControlsDisplay.cs deleted file mode 100644 index f8e322e..0000000 --- a/Assets/Scripts/EventControlsDisplay.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Tilemaps; - -public class EventControlsDisplay : MonoBehaviour -{ - [SerializeField] private Camera camera; - [SerializeField] private Tile tile; - [SerializeField] private float framesPerControlTile = 15; - [SerializeField] private float nextControlYOffset = 0; - [SerializeField] private float nextControlXOffset = 0; - - private Tilemap tilemap; - private int maxNumberOfControlTiles = 3; - private int numberOfControlTilesSet = 0; - private Vector3Int? initialCameraPosition; - private int nextControlAccumalator = 0; - - private int framePerSecond => 60; - - private void Start() - { - tilemap = GetComponent(); - } - - private void Update() - { - SetTile(); - SetTileMapPosition(); - - nextControlAccumalator++; - } - - private void SetTile() - { - if (nextControlAccumalator >= framesPerControlTile && numberOfControlTilesSet < maxNumberOfControlTiles) - { - if (initialCameraPosition == null) - initialCameraPosition = GetCameraPosition(); - - tilemap.SetTile(GetNextTilePosition(), tile); - - nextControlAccumalator = 0; - numberOfControlTilesSet++; - } - else if (numberOfControlTilesSet == maxNumberOfControlTiles) - { - initialCameraPosition = null; - } - } - - private Vector3Int GetCameraPosition() - { - return new Vector3Int((int) camera.transform.position.x, - (int) camera.transform.position.y, - (int) camera.transform.position.z); - } - - private Vector3Int GetNextTilePosition() - { - return (initialCameraPosition + new Vector3Int(numberOfControlTilesSet, 0, 0)) - .GetValueOrDefault(); - } - - private void SetTileMapPosition() - { - transform.position = camera.transform.position + - new Vector3(nextControlXOffset, nextControlYOffset, 0); // offset - } -} diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs index 295ce60..c82d6d1 100644 --- a/Assets/Scripts/Player.cs +++ b/Assets/Scripts/Player.cs @@ -107,7 +107,7 @@ public class Player : MonoBehaviour private void HandleAnimations() { animator.SetBool("IsRunning", Mathf.Abs(rigidBody.velocity.x) > float.Epsilon); - animator.SetBool("IsOnGround", IsPlayerOnGround()); + animator.SetBool("IsGround", IsPlayerOnGround()); animator.SetFloat("YVelocity", rigidBody.velocity.y); } } diff --git a/Assets/Sprites/Controls/Control W Success.asset b/Assets/Sprites/Controls/Control W Success.asset new file mode 100644 index 0000000..4bedf93 --- /dev/null +++ b/Assets/Sprites/Controls/Control W Success.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13312, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Control W Success + m_EditorClassIdentifier: + m_Sprite: {fileID: 21300000, guid: 7c63d0c80ca19b944a6838f2becbc094, type: 3} + m_Color: {r: 0.066082224, g: 0.9339623, b: 0.12693371, a: 1} + m_Transform: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_InstancedGameObject: {fileID: 0} + m_Flags: 1 + m_ColliderType: 1 diff --git a/Assets/Sprites/Controls/Control W Success.asset.meta b/Assets/Sprites/Controls/Control W Success.asset.meta new file mode 100644 index 0000000..8f04672 --- /dev/null +++ b/Assets/Sprites/Controls/Control W Success.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6cf7a50810d16f2468acc06180743d07 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/Palette/Event Controls.prefab b/Assets/Sprites/Palette/Event Controls.prefab index 7288274..1e82ddc 100644 --- a/Assets/Sprites/Palette/Event Controls.prefab +++ b/Assets/Sprites/Palette/Event Controls.prefab @@ -85,6 +85,15 @@ Tilemap: m_GameObject: {fileID: 7903917978724306658} m_Enabled: 1 m_Tiles: + - first: {x: -2, y: 1, z: 0} + second: + m_TileIndex: 1 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_ObjectToInstantiate: {fileID: 0} + m_TileFlags: 1 + m_ColliderType: 1 - first: {x: 0, y: 1, z: 0} second: m_TileIndex: 0 @@ -98,11 +107,13 @@ Tilemap: m_TileAssetArray: - m_RefCount: 1 m_Data: {fileID: 11400000, guid: 7ece7857530facb42b843eed2526c86a, type: 2} - m_TileSpriteArray: - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 6cf7a50810d16f2468acc06180743d07, type: 2} + m_TileSpriteArray: + - m_RefCount: 2 m_Data: {fileID: 21300000, guid: 7c63d0c80ca19b944a6838f2becbc094, type: 3} m_TileMatrixArray: - - m_RefCount: 1 + - m_RefCount: 2 m_Data: e00: 1 e01: 0 @@ -121,12 +132,12 @@ Tilemap: e32: 0 e33: 1 m_TileColorArray: - - m_RefCount: 1 + - m_RefCount: 2 m_Data: {r: 1, g: 1, b: 1, a: 1} m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 2, z: 1} + m_Origin: {x: -2, y: 0, z: 0} + m_Size: {x: 3, y: 2, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: From a21e6fcff099f51d020f40c4a3c4bde392d0d26f Mon Sep 17 00:00:00 2001 From: chyknkat Date: Sat, 1 Feb 2020 13:37:36 -0500 Subject: [PATCH 2/2] add heart asset --- Assets/Sprites/Hud/Heart.png | Bin 0 -> 485 bytes Assets/Sprites/Hud/Heart.png.meta | 115 ++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 Assets/Sprites/Hud/Heart.png create mode 100644 Assets/Sprites/Hud/Heart.png.meta diff --git a/Assets/Sprites/Hud/Heart.png b/Assets/Sprites/Hud/Heart.png new file mode 100644 index 0000000000000000000000000000000000000000..c0a2b18639f66e9a8393e201c308d1fc5beb7aca GIT binary patch literal 485 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9>?NMQuIx{k7=@H9g!BC-0)@m& zTq8*YAD9|cD(^JOjkfDywj@H&@%L6*cWL0!@Vw{sQ{gcGJPEA?(&9j z)n>u(GOlM?N1XerqnA_E)u~l!vZZvY;|#&)Py5AEQ#Eu7emhUl)(UrF(OSW-$^Cxs zW5fSPuN)HzObng#_JYawMH<;XhosEE-izJB+V^OBs8oJz@HC6Ky&f%#D<*7gi+JwX zC&XA77ua%V{e({)SGtdH-F~~_hVs?FSBy@7eev2nI&$umya^jWP3dFVdQ&MBb@001?+-v9sr literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Hud/Heart.png.meta b/Assets/Sprites/Hud/Heart.png.meta new file mode 100644 index 0000000..eebd685 --- /dev/null +++ b/Assets/Sprites/Hud/Heart.png.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: 80eebf55b1280784a8820eb8444c6a7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 16 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: