Ir ao conteúdo

C++ problema com posicionamento de sprite sfml


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

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
  • Solução
Postado

@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

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