Ir ao conteúdo
  • Cadastre-se

C++ problema com posicionamento de sprite sfml


Ir à solução Resolvido por devair1010,

Posts recomendados

Bom estou trabalhando com a biblioteca SFML. Estou tentando fazer uma versão do Space invaders, O problema é no movimento dos aliens ,Eu queria que eles fossem do inicio ao fim da tela depois voltar para o inicio.Mas eles ficam no fim da tela parados invés de voltar.

	if (ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width == window.getSize().x) {
		for (int p = 0; p < 9; p++) {
			X1[p] -= 0.3;
		}
	}
	if(ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width <= window.getSize().x) {
		for (int p = 0; p < 9; p++) {
			X1[p] += 0.3;
		}
	}
	for (int i = 0; i < 2; i++) {
		for (int p = 0; p < 9; p++) {
			ini2[i][p].setPosition(X1[p], Y1[i]);
		}
	}

 

problema.png

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

  • Solução

@João Augusto Gomes Ribeiro      não uso essa biblioteca pois ainda não consegui instalar ela , já tentei várias vezes e nada ,   mas no seu código me parece que está precisando você usar uma bandeira para indicar que chegou do lado direito da tela e é hora de voltar para o lado esquerdo da tela , então essa parte do seu código poderia ser assim   :

int flag=0;
if(ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width >= window.getSize().x){
    flag=1;                                                      /* indicando que chegou do lado direito da tela */
}
if(ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width <= window.getSize().x){
    flag=0;                                                     /* indica que chegou do lado esquerdo da tela  */
}
if(flag==1){
    for (int p = 0; p < 9; p++){
        X1[p] -= 0.3;                                    /* volta para o lado esquerdo  */
    }
}
else{
    for (int p = 0; p < 9; p++) {
        X1[p] += 0.3;                                  /* vai para o lado direito */
    }
}
for(int i = 0; i < 2; i++){                         /* são duas linhas de alliens         */
    for(int p = 0; p < 9; p++){                 /* são nove alliens em cada linha */
        ini2[i][p].setPosition(X1[p], Y1[i]);
    }
}

 

  • Amei 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...