feat: able to jump on obstacle (#32)

This commit is contained in:
2025-01-20 16:00:53 +01:00
committed by GitHub
parent d7ec029bdc
commit cefd20e067
7 changed files with 118 additions and 192 deletions

View File

@ -1,25 +0,0 @@
using UnityEngine;
public class Obstacle : MonoBehaviour
{
public PlayerScript playerScript;
public GameObject playerObject;
public AudioSource audioSource;
public void Start()
{
playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerScript>();
}
public void Update()
{
}
public void OnTriggerEnter2D(Collider2D collision)
{
playerObject.transform.rotation = playerScript.initialRotation;
playerObject.transform.position = playerScript.initialPosition;
playerScript.audioSource.Play();
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: e105dbba5bf85a944a8270ed72ebd3d2

View File

@ -1,27 +1,22 @@
using UnityEngine;
using UnityEngine.SceneManagement;
public class PlayerScript : MonoBehaviour
{
public Rigidbody2D rigidBody;
public GameObject groundObject;
public Vector3 initialPosition;
public Quaternion initialRotation;
public GameObject playerObject;
public ParticleSystem particle;
private bool wantsToJump = false;
public bool isColliding = true;
public AudioSource audioSource;
public void Start()
{
initialPosition = transform.position;
initialRotation = transform.rotation;
var mainModule = particle.main;
mainModule.simulationSpace = ParticleSystemSimulationSpace.World;
particle.transform.parent = null;
}
@ -68,7 +63,7 @@ public class PlayerScript : MonoBehaviour
private bool IsJumping()
{
return Mathf.Abs(initialPosition.y - transform.position.y) > 0.05f;
return !isColliding;
}
private void AlignRotation()
@ -89,4 +84,19 @@ public class PlayerScript : MonoBehaviour
var velocityOverLifetime = particle.velocityOverLifetime;
velocityOverLifetime.x = rigidBody.linearVelocity.x;
}
public void OnCollisionEnter2D(Collision2D collision)
{
isColliding = true;
if (collision.gameObject.tag == "Kill")
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
}
public void OnCollisionExit2D(Collision2D collision)
{
isColliding = false;
}
}

View File

@ -1,24 +0,0 @@
using UnityEngine;
public class SpikeScript : MonoBehaviour
{
public PlayerScript playerScript;
public GameObject playerObject;
public void Start()
{
playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerScript>();
}
public void Update()
{
}
public void OnTriggerEnter2D(Collider2D collision)
{
playerObject.transform.rotation = playerScript.initialRotation;
playerObject.transform.position = playerScript.initialPosition;
playerScript.audioSource.Play();
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 5b6c5b0fa69a1f00da3d8c4aa96485f3