Personagem aparece do outro lado.

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

Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 11:45

Estou usando esses códigos para meu jogo em plataforma.

Código:
if keyboard_check(vk_right){
sprite_index = Direita
if place_free(x+5,y)
x+=5
}

if keyboard_check(vk_left){
sprite_index = Esquerda
if place_free (x-5,y)
x+=-5
}

{
if keyboard_check_pressed(vk_up)
if!place_free(x,y+2){vspeed=-12}
}

{
if place_free(x,y+2)
gravity=1
else
gravity=0
}

Eu quero fazer como esta na imagem:





O personagem entra na parede e sai do outro lado mais ele pode parar no meio do caminho como esta na imagem eu acho que isso só pode ser feito por codigo porque eu usei o "Outside Room" depois "Wrap Screen" esse comando faz que quando o personagem esteja totalmente fora da tela ele aparece do outro lado mais eu não quero isso, eu quero como esta na imagem, e eu uso o "Outside Room" depois "Wrap Screen" e por causa da gravidade o personagem afunda sem eu ver ai não da certo.

Então eu queria um código que faça isso quando o personagem encosta na beirada da room sua ponto já apareça do outro lado.

Obrigado adiantado.







LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Mr. Kaleb em Qui 03 Fev 2011, 11:54

Ao invés de "Outside Room", coloca "Intersect Bonduary" (olha só que esperteza do titio Mark, colocou uma função exatamente para isso!).
FLW

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 12:03

Estranho porque não acontece nada só da certo quando eu pulo na parede ai cai do outro lado mais andando não da e o personagem tem que sumir totalmente para aparecer do outro lado deve ter algo de errado no código que eu uso no meu jogo (Eu postei o código).

OFF-topic:Quem é titio Mark?

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Mr. Kaleb em Qui 03 Fev 2011, 12:07

Que esquisito, vamo esperar mais alguém responder.
Ps: "Titio Mark" é o apelido carinhoso do Mark Overmars, criador do Game Maker.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Salathiel em Qui 03 Fev 2011, 12:11

Acho que entendi sua duvida. Você não que que o personagem fique "dividido ao meio", certo?

Você pode tentar usar movimentação em grid.

Engine:
http://gmbr.forumeiros.com/t3585-lib-rpg-grid-movement-minimap?highlight=grid

Tutorial:
http://www.xcreator.com.br/site/index.php/home/8-game-maker/28-engine-exemplo-de-movimentacao-em-grid-blocos-e-etc

Salathiel

Número de Mensagens : 346
Idade : 20
Data de inscrição : 29/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://salathiel1337.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Markituh em Qui 03 Fev 2011, 12:15

Hmmm... Ambos os dois eventos não possuem diferença alguma, a única que notei foi quando eu vou para a esquerda o personagem desaparece quando sai da metade. Mas o seu código está beleza, não há nada de errado nele scratch O que você poderia fazer é duplicar o objeto enquanto ele estiver com uma parte fora da room, ainda sim com o Interset Boundary. Pois o Wrap Screen só funciona quando se sai totalmente da room, eu acho.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 12:25

Parece que isso é muito dificil de se fazer entaum mais mesmo saindo totalmente da Room não da certo só da certo quando eu pulo parece que quando o personagem sai da Room a gravidade pucha ele para baixo ai ele não aparece do outro lado.

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Phillipe em Qui 03 Fev 2011, 13:10

Ehn...tenta o seguinte:

Deixa o Wrap Screen quetinho lá no Outside Room
Depois coloca esse script no evento Draw do personagem!

Código:
draw_sprite(sprite_index,image_index,x,y)
if x<0+sprite_width/2
draw_sprite(sprite_index,image_index,room_width+x,y)
if x>room_width-sprite_width/2
draw_sprite(sprite_index,image_index,-room_width+x,y)

Espero que seja isso Smile
Boa sorte ai Happy

Phillipe

Número de Mensagens : 324
Idade : 21
Data de inscrição : 15/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por vinians em Qui 03 Fev 2011, 13:18

Amigão isso aqui deve funcionar:
Evento CREATE:

x_espelho = -9999;

Evento STEP: (depois dos seus calculos)

x_espelho = -9999;
if (x < 0)
{
x_espelho = room_width + x;
}
if (x + sprite_get_width(spBoneco) > room_width)
{
x_espelho = x + sprite_get_width(spBoneco) - room_width;
}

Evento DRAW:

draw_sprite(sprite_index, image_index, x, y);
if (x_espelho <> -9999)
{
draw_sprite(sprite_index, image_index, x_espelho, y);
}

Evento Outside ROOM

//"Wrap Horzontal When outside" DragDrop

Ou voce pode ver um exemplo que fiz
Aqui
Flws!


Última edição por vinians em Qui 03 Fev 2011, 13:29, editado 1 vez(es)

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 13:26

Nossa cara obrigado mesmo deu certo.
Mais quando eu ponho os movimentos de plataforma nele tipo pular andar gravidade ai fica cheio de bugs.
Eu uso esse codigo no meu jogo ponha isso em "Step".


Código:
if keyboard_check(vk_right){
if place_free(x+5,y)
x+=5
}

if keyboard_check(vk_left){
if place_free (x-5,y)
x+=-5
}

{
if keyboard_check_pressed(vk_up)
if!place_free(x,y+2){vspeed=-12}
}


{
if place_free(x,y+2)
gravity=1
else
gravity=0
}

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por vinians em Qui 03 Fev 2011, 13:30

LORD @.N.D escreveu:Nossa cara obrigado mesmo deu certo.
Mais quando eu ponho os movimentos de plataforma nele tipo pular andar gravidade ai fica cheio de bugs.
Eu uso esse codigo no meu jogo ponha isso em "Step".


Código:
if keyboard_check(vk_right){
if place_free(x+5,y)
x+=5
}

if keyboard_check(vk_left){
if place_free (x-5,y)
x+=-5
}

{
if keyboard_check_pressed(vk_up)
if!place_free(x,y+2){vspeed=-12}
}


{
if place_free(x,y+2)
gravity=1
else
gravity=0
}
Entendi amigo, verifique agora com o Outside Room Event, eu atualizei o exemplo.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 13:42

Deu bug novamente para ficar mais facil fiz uma demo que mostra o bug joga um pouco que você ve.

Link:
http://www.mediafire.com/?ntagialycljnpv0

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por vinians em Qui 03 Fev 2011, 19:07

Eu vi o bug amigão e dei ajustada na engine.
Download Aqui!
Agora pelo que testei está funcionando aqui.

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 19:13

Nossa cara obrigado mesmo.
Mais tem uma coisa que acontece quando eu estou quase passando para o outro lado estou no bem no meio dos dois ai eu pulo e o personagem sobe e não desce mais.

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por vinians em Qui 03 Fev 2011, 19:28

LORD @.N.D escreveu:Nossa cara obrigado mesmo.
Mais tem uma coisa que acontece quando eu estou quase passando para o outro lado estou no bem no meio dos dois ai eu pulo e o personagem sobe e não desce mais.
É verdade amigão! No Evento STEP la no final comente do and em diante assim:
Código:

if place_free(x, y + 1) //and (x_espelho = -9999)
{
    gravity = 1; 
}
Acho que é isso!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por LORD @.N.D em Qui 03 Fev 2011, 19:34

Arumou isso mais apareceu outro bug quando eu vou para esquerda atraveso para direita depois volto e vou andando até a direita e atraveso ai da bug.

É só ficar jogando um pouco que o bug aparece.

LORD @.N.D

Número de Mensagens : 36
Data de inscrição : 13/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Personagem aparece do outro lado.

Mensagem por Conteúdo patrocinado Hoje à(s) 04:02


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