Explicação do Código
Código do Jogador
Inicialização no Método Start
private void Start()
{
startPosition = transform.position;
}
Finalidade: Armazena a posição inicial do jogador quando o jogo começa.
Reinicialização da Posição do Jogador
public void RestartPlayerPosition()
{
transform.position = startPosition;
rb.velocity = Vector2.zero;
}
Finalidade: Redefine a posição do jogador para a posição inicial e interrompe qualquer movimento ao definir a velocidade como zero.
Manipulação da Entrada do Jogador no Método Update
private void Update()
{
Vector2 oldVelocity = rb.velocity;
if (Input.GetKeyDown(KeyCode.Space))
{
oldVelocity.y = 6;
}
oldVelocity.x = 4;
rb.velocity = oldVelocity;
}
Finalidade: Captura a entrada do jogador (tecla espaço) para fazer o jogador "pular" ao definir a velocidade y para 6, enquanto move constantemente o jogador para a direita ao definir a velocidade x para 4.
Manipulação de Colisões
OnCollisionEnter2D
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag == "ground")
{
RestartPlayerPosition();
}
}
Finalidade: Reinicia a posição do jogador ao colidir com objetos marcados como "ground".
OnTriggerEnter2D
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "win")
{
winPanel.SetActive(true);
SoundManager.instance.PlayEffect(1);
}
}
Finalidade: Ativa o painel de vitória e reproduz um efeito sonoro quando o jogador colide com objetos marcados como "win".
Resumo
- Movimento: O jogador se move continuamente para a direita e salta ao pressionar a tecla de espaço;
- Reinício: A posição do jogador é reiniciada ao colidir com o chão;
- Vitória: Exibe um painel de vitória e reproduz um som ao alcançar o gatilho de vitória.
Classe SoundManager
Método Start
private void Start()
{
if (instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
}
Finalidade:
Garante que exista apenas uma instância de SoundManager
no jogo utilizando o Padrão Singleton. Utiliza DontDestroyOnLoad(gameObject)
para manter o objeto entre diferentes cenas.
Método PlayEffect
public void PlayEffect(int index)
{
if (index >= 0 && index < effects.Count)
{
source.PlayOneShot(effects[index]);
}
}
Finalidade:
Recebe um inteiro index
para identificar qual efeito sonoro será reproduzido a partir da lista effects
. Verifica se o index
está dentro do intervalo válido da lista effects
e reproduz o efeito sonoro especificado utilizando source.PlayOneShot(effects[index])
.
Resumo
- Padrão Singleton: Garante que apenas uma instância de
SoundManager
exista no jogo, persistindo entre as cenas; - Reprodução de Efeitos Sonoros: Utiliza o método
PlayEffect
para reproduzir efeitos sonoros especificando seu índice na listaeffects
; - Fonte de Áudio: Utiliza um componente
AudioSource
para tocar os clipes de áudio.
Classe WinPanel
A classe WinPanel
fornece funcionalidades para o painel de interface que aparece quando o jogador vence. Inclui métodos para retornar ao menu principal ou reiniciar o nível, cada um reproduzindo um efeito sonoro e carregando a cena apropriada.
Métodos
Método ReturnToMainMenu
public void ReturnToMainMenu()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene(0);
}
Finalidade:
Reproduz um efeito sonoro (índice 0) utilizando SoundManager.instance.PlayEffect(0)
. Carrega a cena do menu principal com o índice de build 0 utilizando SceneManager.LoadScene(0)
.
Método RestartLevel
public void RestartLevel()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene("Game");
}
Finalidade:
Reproduz um efeito sonoro (índice 0) utilizando SoundManager.instance.PlayEffect(0)
. Carrega a cena do jogo chamada "Game" utilizando SceneManager.LoadScene("Game")
.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.33
Explicação do Código
Deslize para mostrar o menu
Código do Jogador
Inicialização no Método Start
private void Start()
{
startPosition = transform.position;
}
Finalidade: Armazena a posição inicial do jogador quando o jogo começa.
Reinicialização da Posição do Jogador
public void RestartPlayerPosition()
{
transform.position = startPosition;
rb.velocity = Vector2.zero;
}
Finalidade: Redefine a posição do jogador para a posição inicial e interrompe qualquer movimento ao definir a velocidade como zero.
Manipulação da Entrada do Jogador no Método Update
private void Update()
{
Vector2 oldVelocity = rb.velocity;
if (Input.GetKeyDown(KeyCode.Space))
{
oldVelocity.y = 6;
}
oldVelocity.x = 4;
rb.velocity = oldVelocity;
}
Finalidade: Captura a entrada do jogador (tecla espaço) para fazer o jogador "pular" ao definir a velocidade y para 6, enquanto move constantemente o jogador para a direita ao definir a velocidade x para 4.
Manipulação de Colisões
OnCollisionEnter2D
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag == "ground")
{
RestartPlayerPosition();
}
}
Finalidade: Reinicia a posição do jogador ao colidir com objetos marcados como "ground".
OnTriggerEnter2D
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "win")
{
winPanel.SetActive(true);
SoundManager.instance.PlayEffect(1);
}
}
Finalidade: Ativa o painel de vitória e reproduz um efeito sonoro quando o jogador colide com objetos marcados como "win".
Resumo
- Movimento: O jogador se move continuamente para a direita e salta ao pressionar a tecla de espaço;
- Reinício: A posição do jogador é reiniciada ao colidir com o chão;
- Vitória: Exibe um painel de vitória e reproduz um som ao alcançar o gatilho de vitória.
Classe SoundManager
Método Start
private void Start()
{
if (instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
}
Finalidade:
Garante que exista apenas uma instância de SoundManager
no jogo utilizando o Padrão Singleton. Utiliza DontDestroyOnLoad(gameObject)
para manter o objeto entre diferentes cenas.
Método PlayEffect
public void PlayEffect(int index)
{
if (index >= 0 && index < effects.Count)
{
source.PlayOneShot(effects[index]);
}
}
Finalidade:
Recebe um inteiro index
para identificar qual efeito sonoro será reproduzido a partir da lista effects
. Verifica se o index
está dentro do intervalo válido da lista effects
e reproduz o efeito sonoro especificado utilizando source.PlayOneShot(effects[index])
.
Resumo
- Padrão Singleton: Garante que apenas uma instância de
SoundManager
exista no jogo, persistindo entre as cenas; - Reprodução de Efeitos Sonoros: Utiliza o método
PlayEffect
para reproduzir efeitos sonoros especificando seu índice na listaeffects
; - Fonte de Áudio: Utiliza um componente
AudioSource
para tocar os clipes de áudio.
Classe WinPanel
A classe WinPanel
fornece funcionalidades para o painel de interface que aparece quando o jogador vence. Inclui métodos para retornar ao menu principal ou reiniciar o nível, cada um reproduzindo um efeito sonoro e carregando a cena apropriada.
Métodos
Método ReturnToMainMenu
public void ReturnToMainMenu()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene(0);
}
Finalidade:
Reproduz um efeito sonoro (índice 0) utilizando SoundManager.instance.PlayEffect(0)
. Carrega a cena do menu principal com o índice de build 0 utilizando SceneManager.LoadScene(0)
.
Método RestartLevel
public void RestartLevel()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene("Game");
}
Finalidade:
Reproduz um efeito sonoro (índice 0) utilizando SoundManager.instance.PlayEffect(0)
. Carrega a cena do jogo chamada "Game" utilizando SceneManager.LoadScene("Game")
.
Obrigado pelo seu feedback!