This commit is contained in:
Jack Rus
2020-02-02 11:38:59 -05:00
19 changed files with 321 additions and 15 deletions

View File

@@ -4,24 +4,37 @@ using UnityEngine;
public class ParallaxBackground : MonoBehaviour
{
public Camera camera;
public SpriteRenderer renderer;
[SerializeField] Camera baseCamera;
[SerializeField] SpriteRenderer baseRenderer;
public Vector2 scrollRate = Vector2.one * .4f;
Vector2 tileSize;
Vector2 offset = new Vector2(8f, 7.5f);
// Start is called before the first frame update
void Start()
{
baseRenderer.transform.position = new Vector3(
baseCamera.transform.position.x - offset.x,
baseCamera.transform.position.y - offset.y,
baseRenderer.transform.position.z);
tileSize = baseRenderer.size;
baseRenderer.size = new Vector2(
(Mathf.Ceil(tileSize.x / (offset.x * 2f)) + 2f) * tileSize.x,
(Mathf.Ceil(tileSize.y / (offset.y * 2f)) + 2f) * tileSize.y);
}
// Update is called once per frame
void Update()
{
//var currentPos =
//var offset = new Vector3(8f, -7.5f, 0f);
//renderer.transform.position = camera.transform.position + ((camera.transform.position * new Vector3(scrollRate.x, scrollRate.y, 0f)) - offset);
var depth = baseRenderer.transform.position.z;
var basePosition = (Vector2)baseCamera.transform.position - (offset * new Vector2(1f, -1f));
var scrollOffset = baseCamera.transform.position * scrollRate;
scrollOffset = new Vector2(scrollOffset.x % tileSize.x, scrollOffset.y % tileSize.y);
var position = basePosition - scrollOffset - tileSize * new Vector2(1, -1);
baseRenderer.transform.position = new Vector3(position.x, position.y, depth);
}
}

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 969fb43c02f3e464c8e0907e44dc946c
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: ed52247b51db5b942a636c14f0b4290c
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 3095e099213c73c4182d9feeae77ebbd
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 292f0e8e04642864daaf315efade99c7
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 33e618f5ded88f7449cf8c6b88e71c8f
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: aafb1c137c5574744b6c2c5b7d5e7055
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 528e0f9bceff67a4e98ab441ac65acde
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -47896,6 +47896,84 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1727766209
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727766208}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -7.8, y: 7.65, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1146013793}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1727766210
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727766208}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 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: 1067504601
m_SortingLayer: -1
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: e33008ddf5593464c90eced40f3f28e8, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 2
m_Size: {x: 16, y: 16}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1727766211
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727766208}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: af4fa3c5d20488d4fa39fb11819d3f97, type: 3}
m_Name:
m_EditorClassIdentifier:
baseCamera: {fileID: 1337282922}
baseRenderer: {fileID: 1727766210}
scrollRate: {x: 0.4, y: 0.4}
--- !u!1 &1895829829
GameObject:
m_ObjectHideFlags: 0
@@ -48086,12 +48164,12 @@ PrefabInstance:
- target: {fileID: 8554420466772133694, guid: f859e1c9214db2c4eaaeff51febb3222,
type: 3}
propertyPath: m_LocalPosition.x
value: 42.01
value: 54.1
objectReference: {fileID: 0}
- target: {fileID: 8554420466772133694, guid: f859e1c9214db2c4eaaeff51febb3222,
type: 3}
propertyPath: m_LocalPosition.y
value: 22.76
value: 32.6
objectReference: {fileID: 0}
- target: {fileID: 8554420466772133694, guid: f859e1c9214db2c4eaaeff51febb3222,
type: 3}

View File

@@ -9,6 +9,7 @@ public class EventControls : MonoBehaviour
{
[SerializeField] private Player player;
[SerializeField] private Camera camera;
[SerializeField] private GameObject music;
[SerializeField] private List<Tile> tiles;
[SerializeField] private List<Tile> successTiles;
[SerializeField] private List<Tile> failTiles;
@@ -159,6 +160,17 @@ public class EventControls : MonoBehaviour
.GetValueOrDefault();
}
IEnumerator PlayVictoryMusic()
{
music = GameObject.Find("Music");
var audioSrc = music.GetComponent<AudioSource>();
audioSrc.Pause();
SoundManagerScript.PlaySound("win");
var clipSeconds = SoundManagerScript.audioSrc.clip.length;
yield return new WaitForSeconds(clipSeconds);
audioSrc.Play();
}
private void PerformControlEvent()
{
nextControlAccumalator = 0;
@@ -185,6 +197,7 @@ public class EventControls : MonoBehaviour
// Destroy(currentEnemyCollider.gameObject);
// currentEnemyCollider = null;
hasFailed = false;
StartCoroutine(PlayVictoryMusic());
}
}
@@ -274,7 +287,7 @@ public class EventControls : MonoBehaviour
// var offset = camera.transform.position.x - (int)camera.transform.position.x;
// transform.position = new Vector3(transform.position.x + offset, transform.position.y, 0);
//}
private EventControlTile GenerateEventControlTile(Vector3Int position)
{
var randomNumber = Random.Range(0, TileToKeyMappings.TileToKey.Count);

View File

@@ -32,6 +32,8 @@ public class Player : MonoBehaviour
private bool isMovementEnabled = true;
private bool isFighting = false;
private bool isPlayerHurt = false;
private void Start()
{
rigidBody = GetComponent<Rigidbody2D>();
@@ -129,7 +131,7 @@ public class Player : MonoBehaviour
Run();
FlipSprite();
}
PlayFightSound();
HandleAnimations();
}
@@ -234,20 +236,38 @@ public class Player : MonoBehaviour
animator.SetBool("IsFighting", isFighting);
}
private void PlayFightSound()
{
if (isFighting && !isPlayerHurt)
{
SoundManagerScript.PlaySound(GetRandomFightClipName());
}
}
private string GetRandomFightClipName()
{
var fightClipNames = new List<string> { "punch", "hard punch", "slap", "hard slap" };
var randomNumber = UnityEngine.Random.Range(0, fightClipNames.Count);
return fightClipNames[randomNumber];
}
public void StartEncounter()
{
isPlayerHurt = false;
isFighting = true;
isMovementEnabled = false;
}
public void EndEncounter()
{
isPlayerHurt = false;
isFighting = false;
isMovementEnabled = true;
}
public void ThrowUserInTheAirHurt()
{
{
isPlayerHurt = true;
GetComponent<Rigidbody2D>().velocity += new Vector2(Mathf.Sign(transform.localScale.x) * -1 * hurtVelocity, hurtVelocity);
isFighting = false;
}

View File

@@ -5,8 +5,10 @@ using UnityEngine;
public class SoundManagerScript : MonoBehaviour
{
public static AudioClip jumpSound, screamSound, wrongButtonSound, bugLaughSound, drinkSound;
static AudioSource audioSrc;
public static AudioClip jumpSound, screamSound, wrongButtonSound,
bugLaughSound, drinkSound, eatSound, punchSound, hardPunchSound,
slapSound, hardSlapSound, winSound;
public static AudioSource audioSrc;
// Start is called before the first frame update
void Start()
@@ -16,6 +18,12 @@ public class SoundManagerScript : MonoBehaviour
wrongButtonSound = Resources.Load<AudioClip>("Audio/WrongButton");
bugLaughSound = Resources.Load<AudioClip>("Audio/BugLaugh");
drinkSound = Resources.Load<AudioClip>("Audio/Drink");
eatSound = Resources.Load<AudioClip>("Audio/Eat");
punchSound = Resources.Load<AudioClip>("Audio/Punch");
hardPunchSound = Resources.Load<AudioClip>("Audio/HardPunch");
slapSound = Resources.Load<AudioClip>("Audio/Slap");
hardSlapSound = Resources.Load<AudioClip>("Audio/HardSlap");
winSound = Resources.Load<AudioClip>("Audio/Win");
audioSrc = GetComponent<AudioSource>();
}
@@ -45,6 +53,26 @@ public class SoundManagerScript : MonoBehaviour
case "drink":
audioSrc.PlayOneShot(drinkSound);
break;
case "eat":
audioSrc.PlayOneShot(eatSound);
break;
case "punch":
audioSrc.PlayOneShot(punchSound);
break;
case "hard punch":
audioSrc.PlayOneShot(hardPunchSound);
break;
case "slap":
audioSrc.PlayOneShot(slapSound);
break;
case "hard slap":
audioSrc.PlayOneShot(hardSlapSound);
break;
case "win":
audioSrc.clip = winSound;
audioSrc.PlayOneShot(winSound);
break;
}
}
}