SpriteRenderer spriteRenderer;
Rigidbody2D rb; // Adiciona uma referência ao Rigidbody2D
public Sprite idle;
public Sprite running;
public Transform npc;
DialogueSystem dialogueSystem;
public float speed = 10f;
public float jumpForce = 5f; // Força do pulo
private bool isGrounded; // Verifica se o jogador está no chão
private Vector2 velocity = Vector2.zero;
private void Awake()
{
dialogueSystem = FindObjectOfType<DialogueSystem>();
spriteRenderer = GetComponent<SpriteRenderer>();
rb = GetComponent<Rigidbody2D>(); // Obtém o Rigidbody2D
}
void Update()
{
float input = Input.GetAxisRaw("Horizontal");
if (input < 0)
spriteRenderer.flipX = true;
if (input > 0)
spriteRenderer.flipX = false;
velocity = speed * input * Vector2.right;
if (velocity.sqrMagnitude > 0)
{
spriteRenderer.sprite = running;
}
else
{
spriteRenderer.sprite = idle;
}
transform.position += (Vector3)velocity * Time.deltaTime;
// Verifica se o jogador está próximo do NPC
if (Mathf.Abs(transform.position.x - npc.position.x) < 2.0f)
{
if (Input.GetKeyDown(KeyCode.E))
{
dialogueSystem.Next();
}
}
// Verifica se o jogador está no chão e se a tecla de pulo é pressionada
if (isGrounded && Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
}
private void Jump()
{
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); // Aplica a força do pulo
isGrounded = false; // Define que o jogador não está mais no chão
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Verifica se o jogador colidiu com o chão
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true; // Define que o jogador está no chão
}
}
}
Soco:
using UnityEngine;
public class PlayerPunch : MonoBehaviour
{
private SpriteRenderer spriteRenderer; // Referência ao SpriteRenderer
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("Botão esquerdo do mouse pressionado!");
ChangeColor(); // Chama o método que muda a cor
}
}
void ChangeColor()
{
spriteRenderer.color = new Color(Random.value, Random.value, Random.value);
}
Dialogo:
using System; using System.Collections; using TMPro; using UnityEngine;
public class TypeTextAnimation : MonoBehaviour {
} using UnityEngine;
public enum STATE { DISABLED, WAITING, TYPING }
public class DialogueSystem : MonoBehaviour {
} using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro;
public class DialogueUI : MonoBehaviour {
} Movimentação:
using UnityEngine;
public class Player : MonoBehaviour {
}
Soco: using UnityEngine;
public class PlayerPunch : MonoBehaviour { private SpriteRenderer spriteRenderer; // Referência ao SpriteRenderer
}