Conectar-se
Quem está conectado
12 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 12 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

[Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 10:08
Gostaria de fazer uma room com loop horizontal, mas que não se mexesse. Cada parte do player que sair da room, aparecer no outro lado da room. Alguém me ajuda?


Última edição por Knonick em Ter 31 Maio 2011, 21:09, editado 1 vez(es)
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 18/02/2011
Número de Mensagens : 346
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 10:25
Todos os lados:

Código:
if (bbox_right<0)x=room_width;

if (bbox_bottom<0)y=room_height;else
if (bbox_top>room_height)y=0;

Horizoltal

Código:
if (bbox_left>room_width)
x=0;else

Não tenho certeza se funciona mas é bom testar
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 10:57
Eu coloco esse código aonde? No player?

---EDIT---

Já consegui. Mas mudei o código para:
if (bbox_left>room_width)
x=0;
if (bbox_right<0)
x=room_width;
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 26/09/2010
Número de Mensagens : 270
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 13:09
Tem uma função no game maker que faz esse efeito sem precisar fazer verificações.
Código:
move_wrap (hor, vert, margem) Envolve a instância, quando ela sair do room para o outro lado. hor indica que se envolve horizontalmente e vert indica que se envolve na vertical. margem indica o quanto a origem da instância deve estar fora da room antes do envolvimento que acontece. Por isso, ele é uma margem em torno do room. Você geralmente usa esta função no evento lado de fora.
Como exemplo crie um quadrado e coloque o código.
move_wrap(1,1,32)
Ele irá sair por todos os lados da room e aparecer do outro fazendo um loop.
flw
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 14:35
Pra ele ir aparecendo à medida que vai sumindo do outro lado, pode ser necessário criar uma nova instância do obj_player do lado de lá da tela. Aí, você destrói a(s) instâncias que estiverem a 1 pixel fora da tela. Cuidado com as variáveis locais e create events na hora de fazer isso.

Mas se você não precisar das duas metades (uma em cada canto da tela) aparecendo e colidindo ao mesmo tempo, melhor manter como está.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 26/09/2010
Número de Mensagens : 270
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 14:46
@saim escreveu:Pra ele ir aparecendo à medida que vai sumindo do outro lado, pode ser necessário criar uma nova instância do obj_player do lado de lá da tela. Aí, você destrói a(s) instâncias que estiverem a 1 pixel fora da tela. Cuidado com as variáveis locais e create events na hora de fazer isso.

Mas se você não precisar das duas metades (uma em cada canto da tela) aparecendo e colidindo ao mesmo tempo, melhor manter como está.
Opa Saim não será necessário ele fazer isso o código que eu falei acima faz exatamente essa função de fazer ele desaparecer de um lado e começar a aparecer do outro no mesmo instante em que ele sai da room.

move_wrap(hor,vert,margin)
hor = Se ele deve executar a ação na horizontal.
vert = Se ele deve executar a ação na vertical.
margin = Indica o quanto a origem da sprite deve estar fora da room para executar a ação.
flw
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 15:08
@Carlos L. escreveu:o código que eu falei acima faz exatamente essa função de fazer ele desaparecer de um lado e começar a aparecer do outro no mesmo instante em que ele sai da room.
Fiz um teste aqui e o personagem sempre ficou com a sprite inteira de um lado só. Acho que é isso mesmo que a função faz: te pula pro outro lado da tela. do jeito que eu falei, a coisa seria como um portal, seu braço esquerdo aqui e seu braço direito lá do outro lado. Claro que isso nem sempre é necessário.
Mas eu posso ter feito alguma bobagem na hora de definir a margem. Se for isso, me explique como fazer. Eu usei "move_wrap(1, 1, 1)"
avatar
Data de inscrição : 23/09/2008
Número de Mensagens : 169
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 15:21
Um modo pilado de fazer um efeito legal é colocar duas copias do sprite deslocadas!

Tente isso pra vc ver!
Bote no draw!
Código:
draw_sprite(sprite_index,0,x,y)
draw_sprite(sprite_index,0,x+room_width,y)
draw_sprite(sprite_index,0,x-room_width,y)

Edit:
{
Bote no step!
Código:
move_wrap(1, 0, 0)
}

É só pra loop horizontal!

Té!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 26/09/2010
Número de Mensagens : 270
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 15:32
@saim escreveu:
@Carlos L. escreveu:o código que eu falei acima faz exatamente essa função de fazer ele desaparecer de um lado e começar a aparecer do outro no mesmo instante em que ele sai da room.
Fiz um teste aqui e o personagem sempre ficou com a sprite inteira de um lado só. Acho que é isso mesmo que a função faz: te pula pro outro lado da tela. do jeito que eu falei, a coisa seria como um portal, seu braço esquerdo aqui e seu braço direito lá do outro lado. Claro que isso nem sempre é necessário.
Mas eu posso ter feito alguma bobagem na hora de definir a margem. Se for isso, me explique como fazer. Eu usei "move_wrap(1, 1, 1)"
Qual foi a dimensão da sua imagem?
Faça um exemplo da seguinte maneiro crie uma sprite de 32x32 coloque qualquer cor nela e coloque o seguinte código.
move_wrap(1,1,32)
Não sei como explicar direito mais acho que a margem funciona mais ou menos assim, no seu caso vou fazer de conta que você usou uma sprite de 32x32, então como na margem você só colocou 1 ele só iria mostrar a sprite novamente depois que do outro lado onde ela estivesse só estivesse 1 Pixel da imagem (considerando a origem da sprite) fora da room.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 16:06
Não, mesma coisa. Só demorou um pouco mais pra aparecer do outro lado. Fiz outro teste e coloque a margem negativa (-32). O personagem apareceu bem pra dentro da tela.
Meu sprite realmente é 32x32 e a origem é em (0, 0).
avatar
Data de inscrição : 10/05/2011
Número de Mensagens : 92
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 21:08
O move wrap deu no mesmo do código do NUCLEAR, mas fica mais simples. Estou usando uma sprite de 32x32, mas queria que cada pixel que passasse de um lado aparecesse do outro, e o código do ricaun fez exatamente o que eu queria. Vlw.
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1834
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Resolvido]Como fazer uma room com loop horizontal?

em Ter 31 Maio 2011, 23:01
Tópico resolvido.
Trancado.
Se o autor quiser reabrir o tópico envie MP para algum administrador ou moderador.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum