28/01/2019


Resolvido os problemas da escada e dos inimigos. Falta apenas adicionar dois inimigos (um voador e outro com movimento vertical) e o boss da fase, cuja AI será difícil de implementar.

Terminado esses problemas, a fase 1 estará completa e em breve será lançada a demo do jogo.

26/01/2019

Consegui completar mais da metade dos problemas.

Agora o personagem sobe em escadas, arremessa objetos, salva num checkpoint e fica temporariamente invencível. Além disso, os monstros agora também tem vida.

Porém há problemas que precisam ser solucionados o quanto antes:

- Ao ignorar colisão quando sofrem dano ou morre, isso se aplica a todos os slimes inimigos, permitindo que o personagem se mova entre eles sem sofrer dano. É preciso que a colisão seja ignorada apenas entre o objeto atingido e o personagem.

- A velocidade de queda está afetando o movimento do personagem na escada. Não consigo deixá-lo inerte quando ele cai na escada.

25/01/2019

Atualização

Não consegui upar o vídeo de ontem...

Mas, enfim. Corrigi metade dos problemas listados no último post. Faltam apenas:

- Criar boss da fase
- Subir e descer escadas
- Criar checkpoint e save

A ação do throw foi a que deu mais trabalho depois do jump, e confesso que me desmotivou muito até que eu corrigisse. Decidi dar um tempo no projeto hoje. Amanhã devo tentar corrigir os problemas da lista acima.

23/01/2019

Falta corrigir algumas coisas:


  • "Freezar" a tela na animação de morte
  • Bloquear o andar quando sofre dano
  • Arremessar objeto após a animação de throw
  • Objeto arremessado tem que colidir com o meio
  • Personagem grudado no edge da plataforma
  • Criar invencibilidade temporária
  • Criar boss da fase
  • Adicionar vida e AI aos inimigos
  • Adicionar tela de Press Start e reiniciar o jogo quando der game over
  • Criar checkpoint


18/01/2019

Corrigi os problemas de animação atrasada ao pousar no terreno.

Passei o dia inteiro programando a plataforma flutuante.

O jogo, enfim, toma uma forma.

Isso é real?

17/01/2019


15/01/2019

Script C# do personagem (com anti-colisões)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    public float maxSpeed = 10f;
    public float forcaPulo = 100;
    bool grounded = false;
    bool walld = false;
    public Transform groundCheck;
    public Transform wallCheck;
    float groundRadius = 0.2f;
    float wallRadius = 0.2f;
    public LayerMask whatIsGround;
    public LayerMask whatIsWall;
    bool doubleJump = false;
    bool noAr = false;

    Animator anim;

    void Start()
    {
        anim = GetComponent<Animator>();

    }

    void Update()
    {

        Rigidbody2D rigidbody = GetComponent<Rigidbody2D>();
        float vSpeed = rigidbody.velocity.y;
        float movimento = Input.GetAxis("Horizontal");

        if (vSpeed != 0 && movimento != 0 && !grounded)
        {
            noAr = true;
        }

        if (grounded && vSpeed == 0.0)
        {
            GetComponent<Animator>().SetBool("jumping", false);
            noAr = false;
        }

        if (!grounded)
        {
            GetComponent<Animator>().SetBool("walking", false);
            anim.SetBool("Ground", false);


            if (!grounded && Input.GetKeyDown(KeyCode.Space) && walld)
            {

                GetComponent<Animator>().SetBool("jumping", false);
                anim.SetBool("Ground", false);

            }
        }
        if (grounded && Input.GetKeyDown(KeyCode.Space))
        {
                   
            anim.SetBool("Ground", false);
           
            GetComponent<Animator>().SetBool("jumping", true);

            if (!noAr)
            {
                GetComponent<Rigidbody2D>().AddForce(new Vector2(0, 150));
            }


        }

     

    }


    void FixedUpdate()
    {
        Rigidbody2D rigidbody = GetComponent<Rigidbody2D>();
       

        grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
        anim.SetBool("Ground", grounded);
        walld = Physics2D.OverlapCircle(wallCheck.position, wallRadius, whatIsWall);
        anim.SetBool("Wall", walld);
        anim.SetBool("No Ar", noAr);



        anim.SetFloat("vSpeed", rigidbody.velocity.y);

        float move = Input.GetAxis("Horizontal");
        anim.SetFloat("Speed", Mathf.Abs(move));
        rigidbody.velocity = new Vector2(move * maxSpeed, rigidbody.velocity.y);

        if (grounded)
        {
            doubleJump = false;
        }

       
     

        if (move < 0)
        {
            GetComponent<SpriteRenderer>().flipX = true;
        }
        else if (move > 0)
        {
            GetComponent<SpriteRenderer>().flipX = false;

        }

        }


}

14/01/2019

Corrigido o erro de animação ao pular enquanto anda. Transições de animação estão funcionando.

Falta corrigir o erro de colisão na parede, quando o personagem pode pular ao encostar na parede.

13/01/2019

Relatório

Adicionados novos efeitos de pulo, caminhar, arremessar e liberar energia.

Criação de um mapa prototípico, para ambiente de testes.

Adicionado vilão.

Iniciado codificação de scripts na linguagem C#.

Mais tarde posto vídeo ou fotos das cenas.

11/01/2019


04/01/2019

Retomando o projeto. Atualizações do jogo em breve.