Ir ao conteúdo
  • Cadastre-se

C++ c++ Como fazer com que clique em jogar novamente e o jogo começe do zero?


Fran Botene

Posts recomendados

Estou criando um jogo endless runner, só que quando o personagem morre, e clica pra jogar de novo ele nao reseta as informações, quando escolhe outro personagem ele sempre vai pro que foi escolhido primeiro. Já tentei varias coisas, mas nada funciona. Estou usando classes. Se alguem puder ajudar ficaria mt feliz.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@arfneto eu estou usando uma biblioteca, libUnicornio. e no primeiro semestre do meu curso, então ta mais ou menos.

 

<

#pragma once
#include "libUnicornio.h"

enum Status { subindo, descendo, correndo, morrendo };

class Personagem
{
public:
    Personagem();
    ~Personagem();

    void inicializar(bool m);
    void atualizar();
    void desenhar();
    void vidaMais() { vidas++; }

    int getPontuacao() { return pontuacao; }


    float getx() { return x; }
    float gety() { return y; }
    int getVida() { return vidas; }
    Sprite getSprite() { return sprite; }

    void Dano() { vidas--; }


protected:
    Sprite sprite;
    float x, y;
    Status status;
    bool Menina;

    float aceleracao = 0;
    int pontuacao;
    int vidas;
    bool vivo;
};

>

<

#pragma once
#include "libUnicornio.h"

enum TipoObjeto
{
    objParado, objMovel
};


class Objeto
{
public:
    Objeto();
    ~Objeto();

    void inicializar(TipoObjeto t);
    void atualizar();
    void desenhar();
    Sprite getSprite() { return sprite; }
    float getX() { return x; }
    float getY() { return y; }


protected:
    int contadorVelocidadeCenario = 0;
    float velocidadeCenario = 5;
    TipoObjeto tipo;
    Sprite sprite;
    float x, y;
    int objRand, rot, randRot;
};

<

#pragma once
#include "Personagem.h"
#include "Objeto.h"

enum Telas
{
    tMenu, tInstrucoes, tCreditos, tJogar, tJogo, tGameOver, tPause, tSair
};

enum Botao 
{
    bJogar, bSair, bContinuar, bMenu, bCreditos, bInstrucoes, bMenina, bMenino
};


class Jogo
{
public:
    Jogo();
    ~Jogo();

    void inicializar();
    void finalizar();

    void executar();

    bool getMenina() { return Menina; }
    
protected:
    int contadorVelocidadeCenario = 0;
    Personagem personagem;
    float velocidadeCenario = 3;
    bool Menina;
    Telas telaAtual;
    void telaMenu();
    void telaIntrucoes();
    void telaCreditos();
    void telaGameOver();
    void telaJogar();
    void telaJogo();
    void telaPause();    
    Sprite fundo1, fundo2;
    float xFundo1 = 670, yFundo1 = 377, xFundo2 = 2010, yFundo2 = 377;       
    Texto tPontuacao;
    BotaoSprite botões[8];
    int musica = 0;
    Objeto objParados;
    Objeto objmoveis;
    bool Musica;
};

>

>

adicionado 0 minutos depois

@devair1010 Eu pensei nisso, e criei um metodo no meu personagem de resetar, setando tudo para os valores iniciais, mas nao ta rolando.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

57 minutos atrás, Fran Botene disse:

@arfneto Eu nao aprendi override, nem salvar status. Os metodos eu coloquei só sprites, x, y , testar colisoes, musica essas coisas. 

 

Entendo. Mas ao iniciar as classes algo vai, provavelmente no método inicializar, criar os objetos todos, como os Personagens. Se você não escreveu nada disso então não deve mesmo salvar nada. Essa biblioteca que está usando é baseada em SDL não é? 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Fran Botene disse:

@arfneto eu nao sei o que eh SDL, mas fiz uma gambiarra muito doida e ta funcionando. Obrigada :)

:D

Muito bom!

 

SDL é a biblioteca que foi usada para construir essa que está usando, libUnicornio. Eu não conhecia essa mas já usei a

primeira. Pode ver mais no site da SDL

Encontri o site de referência da libUnicornio e lá tem um documento de introdução... Talvez você devesse fdar uma olhada se ainda não fez isso. Está em https://github.com/GuilhermeAlanJohann/libUnicornio/blob/master/libUnicornio/docs/Como começar.txt

Direto do autor

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!