This commit is contained in:
Sweet Tini
2020-02-01 14:01:56 -05:00
13 changed files with 354 additions and 79 deletions

8
Assets/Model.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 477280fac62d2934f9d0aa49bedf3251
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 651afb7ac1f7a324b8b21db2b04ff151
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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,

View File

@@ -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<EventControlTile> eventControlTilesInCycle;
private int framesPerSecond => 60;
private void Start()
{
tilemap = GetComponent<Tilemap>();
eventControlTilesInCycle = new Queue<EventControlTile>();
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
}
}

View File

@@ -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<Tilemap>();
}
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
}
}

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6cf7a50810d16f2468acc06180743d07
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

View File

@@ -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:

View File

@@ -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: