Ir para conteúdo
Fórum Script Brasil

Pergunta

estou tentando fazer um programa aonde tem uma tela e você pode se movimentar com a mira apertando wasd mais problema e que quando eu aperto w ou a ou s ou d ele so vai pra uma direção e eu não estou conseguindo resolver

Aqui esta o codigo: 

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstdlib>
using namespace std;
char tela[15][15];
int x, y, perx, pery, movimento = 0, movimentacao(), imprime(), define();;
int movimentacao(){
    movimento = getche();
    if (movimento == 119 || movimento == 97 || movimento == 115 || movimento == 100){
    if (movimento = 119){
            if(perx != 0){
            define();
            perx--;
            }
    }
    if (movimento = 97){
            if(pery != 0){
            define();
            pery--;
            }
    }
    if (movimento == 115){
            if(perx != 14){
            define();
            perx++;
            }
    }
    if (movimento == 100){
            if(pery != 14){
            define();
            pery++;
            }
    }
}else{
    system("cls");
    imprime();
    movimentacao();
}
}
int define(){
    for (int xtela = 0;xtela<15;xtela++){
        for (int ytela = 0;ytela<15;ytela++){
            tela[xtela][ytela] = ' ';
        }
    }
}
int personagem(){
    tela[perx][pery] = '+';
}
int imprime(){
    for (int xtela = 0;xtela<15;xtela++){
        for (int ytela = 0;ytela<15;ytela++){
            if (ytela == 14){
                cout << tela[xtela][ytela] << endl;
            }
            else{
                cout << tela[xtela][ytela];
            }
        }
}
}
int main(){
    while (true){
        define();
        perx = 7;
        pery = 7;
        while (true){
            system("cls");
            personagem();
            imprime();
            movimentacao();
        }
    }
}

Editado por Elon Neto
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá @Elon Neto

Aqui está, você colocou um loop (de função recursiva) dentro da função movimento. Eu tirei e funcionou.

using namespace std;

static char tela[15][15];
static int x, y, perx, pery, movimento = 0;

void movimentacao();
void personagem();
void imprime();
void define();

void movimentacao()
{
	movimento = getche();
	if(movimento == 119){
		if(perx != 0){
			--perx;
			define();
		}
	}
	else if(movimento == 97){
		if(pery != 0){
			--pery;
			define();
		}
	}
	else if(movimento == 115){
		if(perx != 14){
			++perx;
			define();
		}
	}
	else if(movimento == 100){
		if(pery != 14){
			++pery;
			define();
		}
	}
}


void define()
{
	for(int xtela = 0; xtela < 15; xtela++){
		for(int ytela = 0; ytela < 15; ytela++){
			tela[xtela][ytela] = ' ';
		}
	}
}


void personagem()
{
	tela[perx][pery] = '+';
}

void imprime()
{
	for (int xtela = 0; xtela < 15; xtela++){
		for (int ytela = 0; ytela < 15; ytela++){
			if (ytela == 14){ cout << tela[xtela][ytela] << endl; }
			else { cout << tela[xtela][ytela]; }
		}
	}
}

int main(void)
{
	while(true){
		define();
		perx = 7;
		pery = 7;
		while(true){
			system("CLS");
			personagem();
			imprime();
			movimentacao();
		}
	}
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...