Merge remote-tracking branch 'origin/main' into damage-handling

This commit is contained in:
go38coz
2026-06-06 01:35:39 +02:00
2 changed files with 79 additions and 12 deletions
+1 -1
View File
@@ -137,7 +137,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4266476263824402640, guid: d56297e435f8410a584581d73d99d2e4, type: 3} - target: {fileID: 4266476263824402640, guid: d56297e435f8410a584581d73d99d2e4, type: 3}
propertyPath: m_GravityScale propertyPath: m_GravityScale
value: 5 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6566899495513628888, guid: d56297e435f8410a584581d73d99d2e4, type: 3} - target: {fileID: 6566899495513628888, guid: d56297e435f8410a584581d73d99d2e4, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
+77 -10
View File
@@ -1,19 +1,27 @@
using UnityEngine; using UnityEngine;
using System.Collections;
public class DropletMovement : MonoBehaviour public class DropletMovement : MonoBehaviour
{ {
private Rigidbody2D rb; private Rigidbody2D rb;
public float moveSpeed = 5f;
public float jumpingPower = 5f;
private Vector2 movement;
private Animator playerAnim; //for animation
private float xInput;
// helper variables // helper variables
private bool isGrounded = true; private bool isGrounded = true;
[SerializeField] private float dashSpeed; private float facingDirection = 1f;
[SerializeField] private float dashDuration;
private float dashTime; // movement
private Vector2 movement;
public float jumpingPower = 5f;
public float moveSpeed = 5f;
// dashing
private bool canDash = true;
private bool isDashing;
public float dashingPower = 24f;
public float dashingTime = 0.2f;
public float dashingCooldown = 1f;
[SerializeField] private TrailRenderer tr;
void Start() void Start()
{ {
@@ -22,18 +30,77 @@ public class DropletMovement : MonoBehaviour
void Update() void Update()
{ {
if (isDashing)
{
return;
}
movement.x = Input.GetAxisRaw("Horizontal"); movement.x = Input.GetAxisRaw("Horizontal");
if (movement.x < 0) facingDirection = -1;
if (movement.x > 0) facingDirection = 1;
if (isGrounded &&
if (isGrounded && Input.GetKeyDown(KeyCode.Space)) (Input.GetKeyDown(KeyCode.Space) ||
Input.GetKeyDown(KeyCode.UpArrow) ||
Input.GetKeyDown(KeyCode.W)))
{ {
rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpingPower); rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpingPower);
} }
if (Input.GetKeyDown(KeyCode.LeftShift) && canDash)
{
StartCoroutine(Dash());
}
} }
private void FixedUpdate() private void FixedUpdate()
{ {
if (isDashing)
{
return;
}
rb.linearVelocity = new Vector2(movement.x * moveSpeed, rb.linearVelocity.y); rb.linearVelocity = new Vector2(movement.x * moveSpeed, rb.linearVelocity.y);
} }
private IEnumerator Dash()
{
canDash = false;
isDashing = true;
float originalGravity = rb.gravityScale;
rb.gravityScale = 0f;
rb.linearVelocity = new Vector2(transform.localScale.x * dashingPower, 0f);
if (tr != null)
{
tr.emitting = true;
}
yield return new WaitForSeconds(dashingTime);
if (tr != null)
{
tr.emitting = false;
}
rb.gravityScale = originalGravity;
isDashing = false;
yield return new WaitForSeconds(dashingCooldown);
canDash = true;
}
private void OnCollisionEnter2D(Collision2D col)
{
isGrounded = true;
}
private void OnCollisionExit2D(Collision2D col)
{
isGrounded = false;
}
} }