Página 1 de 1

Troca de posições simultâneas

Enviado: Sex Jun 17, 2016 10:46 pm
por gustavo12g
Olá pessoal  aqui vai minha dúvida:
Tenho 6 objetos perfilados  3 em 3  de forma paralela. O que desejo é que quando apertar espaço cada um deles troque de posição de forma horária.
Um tomaria a posição do outro. Isso não seria tão difícil, mas  o caso  é que eu precisaria identificar qual objeto estaria em cada posição, já que os mesmos poderiam ser selecionados de várias formas, no início do jogo. Por ex:
Uma configuração poderia ser: obj1    obj4             obj2  obj4
                                                  obj2    obj5      ou   obj3  obj1
                                                  obj3    obj6             obj5  obj6

Re: Troca de posições simultâneas

Enviado: Sex Jun 17, 2016 11:47 pm
por Matheus Carvalho
Dá pra fazer assim, dá um valor pra cada um deles, e manda buscar a posição em arrays, usando o seu primeiro exemplo.
obj1 = 0
obj 4 = 1
obj 5 = 2

obj 1.x = x_pos[0]
obj 1.y = ypos[0]
Quando apertar o botão vocês trocaria o índice, em forma de loop (checa se é maior que o maior índice possível, se for, faz ser 0).

Se não entender me fala.

Re: Troca de posições simultâneas

Enviado: Sáb Jun 18, 2016 8:32 am
por gustavo12g
Teria como vc fazer uma engine simples para que possa entender melhor?

Agradeço desde já a atenção.

Re: Troca de posições simultâneas

Enviado: Sáb Jun 18, 2016 2:41 pm
por Matheus Carvalho
hum, ai não... vou faze rum fake code aqui.

obj_piece são seus objetos, quando você criar eles você dá um valor para 'i' assim:
var i = 0;
repeat(6)
inst = instance_create(x, y, obj_piece)
isnt.i = i
i++
}

no step deles
{
   x = posx[i]
   y = posy[i]
}
Quando girar eles, só fazer:
with(obj_piece)
{
   i++
   if i > 5
   {
      i = 0
   }
}
Isso vai fazer com que todos obj_piece adicionem 1 ao valor de 'i', então eles vão buscar uma nova posição nos vetores posx e posy. Se der pra girar anti=horário, também tem que checar se 'i' é menor que 0, se for, faz i = 5.

Dá pra melhorar essa código, mas é por ai.