bug Warp e image_xscale

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido bug Warp e image_xscale

Mensagem por eubruno em Seg 09 Jan 2012, 20:23

Bom o título já diz quase tudo, o bug ocorre quando eu utilizo o código de image_xscale para fazer uma sprite espelhada do meu personagem.

O que acontece é que quando meu personagem "entra" em uma das bordas (a direita por exemplo) da room ele aparece do outro lado, (a esquerda no exemplo) nada mais normal, mas ele aparece um 12 pixels pra frente da borda dando um efeito bem ruim como se ele tivesse se teleportado pra lá, eu ignorei esse bug mas quando coloquei mais sprites e mais códigos o warp deixou de funcionar para um dos lados ( o lado direito).

Desse jeito se eu entro na borda esquerda ele sai certinho pela borda direita mas se eu entro pela borda direita ele NÃO SAI PELA BORDA ESQUERDA.

E eu já fiz o teste se eu tiro o image_xscale o warp funciona direitinho.

E então alguém tem um jeito de consertar esse bug?

Obrigado.


Última edição por eubruno em Sex 13 Jan 2012, 14:47, editado 1 vez(es)

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por luiz_eldorado em Seg 09 Jan 2012, 22:03

Acho que é um problema com a origem da sprite. Tente colocar o "center" na sprite.

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por eubruno em Ter 10 Jan 2012, 10:21

Fiz isso, minhas imagens estão todas marcado no centro em "X" e no chão em "Y" isso facilita para quando eu uso sprites de arrastar no chão.

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por saim em Ter 10 Jan 2012, 12:09

Tem muito tempo que não uso drag'n'drop. Quais são os argumentos de move_warp, mesmo? Poste aí pra eu tentar entender melhor.

Já tive um problema parecido que era o seguinte: ao passar de um ponto, à direita, eu jogava o objeto pra esquerda e vice-versa. Só que eu estava jogando o objeto pra esquerda já no ponto além do limite, então ele era jogado de novo pra direita. Parecia que ele ficava parado, mas estava era indo e voltando.
Será que não é isso o que está acontecendo contigo?

Não consigo imaginar qual seria a relação com o image_xscale. Talvez tenha a ver com os bboxes. Mais uma vez, enumere os argumentos da ação pra eu tentar visualizar o que está acontecendo.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por Fireheaddew em Ter 10 Jan 2012, 12:17

Código:
move_wrap(horizontal,vertical,margem)
Tente colocar o Y no centro também.
Se você estiver o usando o GM 8.1 lite pode usar assim também no movimento do player:
Código:
//esquerda
image_angle=180;image_yscale=-1;
//direita
image_angle=0;image_yscale=1;
Apague o image_xscale e use esses códigos. Lembre-se que a origens X e Y do sprite devem estar no centro. Caso contrário você terá problemas.

Fireheaddew

Número de Mensagens : 235
Data de inscrição : 04/11/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por eubruno em Ter 10 Jan 2012, 12:17

Não entendi muito bem oq vc quis dizer mais vou tentar fazer o melhor que eu puder.

No step eu usei uma variável para determinar qual seria a image_xscale ficou assim:
Código:
if lado=0
image_xscale=1
 if lado=1
image_xscale=-1


E coloquei no evento outside room [drag'e'drop] warp in both direction (vertival\horizontal)

EDIT : Fireheaddew seu comando é bom mas como vc mesmo disse se eu usar esse comando terei que modificar a origin das sprites e isso não é bom pra mim pois terei que modificar o tamanho das minhas sprites, mas de todo jeito se eu não tiver mais opções então terei que usar seu código. Obrigado

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por Fireheaddew em Ter 10 Jan 2012, 12:25

Apenas faça algumas modificações no código do step. No lugar do seu código coloque esse:
Código:

if lado=0{image_angle=0;image_yscale=1;}//direita
if lado=1{image_angle=180;image_yscale=-1;}//esquerda
Traduzindo
Para funcionar, como disse antes, regule a origin do sprite. Abra o sprite e clique em "Center". Pronto, agora coloque esse código no step.
O image_angle serve para rotacionar a imagem para o lado oposto. Lembre-se que a origin do sprite é o eixo dele. Por exemplo, se a origin ficar X=0 e Y=0, o eixo do sprite será em X=0, y=0. Ah, você já deve ter entendido. Mas quando você girar a sprite para a esquerda, ela vai ficar de cabeça para baixo. para isso você deverá espelhar a imagem verticalmente. Se tudo der certo o efeito será o desejado.

Fireheaddew

Número de Mensagens : 235
Data de inscrição : 04/11/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por eubruno em Ter 10 Jan 2012, 12:34

Na verdade eu tinha escrito a mensagem de cima para o Saim eu entendi seu código só não acho ele sirva muito bem mas se não houver solução terei que usa-lo

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por saim em Qua 11 Jan 2012, 14:22

Acho que, se funcionar, não precisa centrar em Y.
Estranho. A "margem" significa o quanto você pode sair da room antes da função acontecer, certo? Se o sprite está mesmo centrado em X, não deveria dar erro...

Tente esse código do Fireheaddew. Eu não entendi o raciocínio, mas se funcionar, é o que importa. Se não funcionar, estou sem idéias.
Se você quiser me mandar a source, estou comum pouco mais de tempo nos próximos dias e posso dar uma olhada.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por eubruno em Sex 13 Jan 2012, 14:47

Olha pessoal desculpa a demora pra postar de novo no tópico.
Mas eu consegui consertar o bug utilizando o código move_wrap era problema na margem mas obrigado por ter respondido o tópico.

Valew

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: bug Warp e image_xscale

Mensagem por Conteúdo patrocinado Hoje à(s) 08:30


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum