Conectar-se
Quem está conectado
29 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 27 Visitantes

Cambalinho, Vikintor

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 19/02/2009
Número de Mensagens : 28
Insígnias de JAM :

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

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

Atravessar plataforma e parar em cima dela

em Qua 25 Fev 2009, 14:23
Eu gostaria de saber como eu faço para fazer meu personagem pular de baixo de uma plataforma atravessar ela e quando cair, parar em cima dela.

Eu ja li topicos com duvidas parecidas com essa study , mas msm assim n conseguir descobrir o q tinha q fazer scratch Sad

Se alguem souber por favor me responda.

qualquer ajuda é bem vinda cheers

e se puder, vir com comandos do game maker.
mas pode ser tb com codigos lol!

flws
avatar
Data de inscrição : 21/02/2009
Número de Mensagens : 679
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Qua 25 Fev 2009, 14:59
podscré queria também fazer isto mas parece q não dar Mad
bom tenha criatividade se ninguem le responder!

Até mais Very Happy
avatar
Data de inscrição : 19/02/2009
Número de Mensagens : 28
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Qua 25 Fev 2009, 15:07
Sad eu estou um tempao lendo uns topicos e n consigo nada
study
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Atravessar plataforma e parar em cima dela

em Qua 25 Fev 2009, 19:06
coloca a plataforma como NAO solida, nao faça NENHUM evento de colisao com ela, e no step do jogador coloca:

Código:
if (place_meeting(x,y+1,obj_plataforma) and vspeed >= 0) {
      vspeed = 0;
      y -= 1;
}


no lugar de obj_plataforma coloque o nome do seu objeto
avatar
Data de inscrição : 19/02/2009
Número de Mensagens : 28
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Qui 26 Fev 2009, 15:48
Gusba + uma vez brigado por tentar ajudar cheers

Depois de muito tentar study eu coloquei esse codigo no step do meu personagem e deu certo Cool

Codigo
while (place_meeting(x,y,obj_plataforma)) {
y -= 1;
if (vspeed >= 0) {
vspeed = 0;
}
}

O unico problema é q depois de atravessar a plataforma ele da um pulo a mais e depois cai em cima do jeito q eu queria
Se n fosse o pulo a mais tava perfeito, mas ate q esse pulo a mais n tem muito problema, entao eu acho q esse problema pra mim foi resolvido. cheers

Eu tentei o seu codigo, mas ele pula por cima da plataforma cai em cima dela mas ai ele perde a animaçao e fica parado e tem q sair da plataforma para voltar ao normal. scratch

Mas mais uma vez vlw por ajudar
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Atravessar plataforma e parar em cima dela

em Qui 26 Fev 2009, 15:58
cara, acredito q esse codigo q deu certo tambem é meu =D

mas q bom que deu certo!
avatar
Data de inscrição : 01/06/2008
Número de Mensagens : 1015
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://supermariobrasileiro.blogspot.com

Re: Atravessar plataforma e parar em cima dela

em Qui 26 Fev 2009, 16:11
Isso não é difícil. O metodo ideal é verificar se o y da plataforma é menor do que o y do personagem. Se for, a plataforma torna-se não-sólida. Se o y da plataforma por maior que o y do personagem (se a plataforma estiver em baixo), ela se torna sólida.

Estou usando isso em um projeto meu, é realmente útil. ;)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 25/04/2008
Número de Mensagens : 318
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://brasilgame.forumbrasil.net

Re: Atravessar plataforma e parar em cima dela

em Qui 26 Fev 2009, 20:01
Tambem acho o metodo do Cpinheiro mais simples e eficaz, por sempre tenho bugs mortais com colisão e acho q o simples é melhor Happy


Última edição por rodrigo1434 em Sab 14 Mar 2009, 13:52, editado 1 vez(es)
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Atravessar plataforma e parar em cima dela

em Qui 26 Fev 2009, 20:20
eu nao acho muito bom, mas cada um cada um xD
avatar
Data de inscrição : 19/02/2009
Número de Mensagens : 28
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Sex 13 Mar 2009, 12:23
oi gente tem como fazer o personagem n dar um pulo a mais modificando esse codigo?

Código:

while (place_meeting(x,y,obj_plataforma)) {
    y -= 1;
    if (vspeed >= 0) {
        vspeed = 0;
    }
}
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Sex 13 Mar 2009, 13:19
claro.

while (place_meeting(x,y,obj_plataforma))
{
if vspeed >= 0
{ vspeed = 0;
y -= 1;}
}

flwss
avatar
Data de inscrição : 03/01/2009
Número de Mensagens : 377
Insígnias de JAM :

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

Re: Atravessar plataforma e parar em cima dela

em Dom 15 Mar 2009, 09:54
Ao invés do vspeed, eu usaria o yprevious e o y. Nem sempre se usa o vspeed, mas o movimento de acordo com a posição anterior e a atual é sempre válido.

Código:
if (place_meeting(x,y+1,obj_plataforma) and (yprevious < y)) then
begin
      vspeed = 0;
      y := (position_meeting(x,y+1,obj_plataforma)).y - 1;
end;

Só que o pivô da instância que pula tem que estar na base do sprite e o pivô da plataforma, no topo do sprite.
avatar
Data de inscrição : 01/06/2008
Número de Mensagens : 1015
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://supermariobrasileiro.blogspot.com

Re: Atravessar plataforma e parar em cima dela

em Dom 15 Mar 2009, 10:02
Não conhecida o yprevious, M.A.S. Como ele funciona?
Ah, para evitar erros com os offsets dos sprites, é bom fazer isso:

Código:
if (place_meeting(x,y-sprite_yoffset+sprite_height+1,obj_plataforma) and (yprevious < y)) then
begin
      vspeed = 0;
      y := (position_meeting(x,y+1,obj_plataforma)).y - 1;
end;

Mas claro, para não dar erros, o sprite deve se resumir no jogador, sem deixar espaços verticalmente.
avatar
Data de inscrição : 03/01/2009
Número de Mensagens : 377
Insígnias de JAM :

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

Re: Atravessar plataforma e parar em cima dela

em Dom 15 Mar 2009, 10:45
Não conhecida o yprevious, M.A.S. Como ele funciona?

O xprevious e o yprevious são as posições x e y da instância no step anterior ao atual. Se você icrementa 1 pixel ao x a cada step, o valor de xprevious no momento em que x for 30 será 29.

Dessa forma saberíamos se a instância está subindo ou descendo mesmo que ela não use o vspeed.
avatar
Data de inscrição : 08/03/2009
Número de Mensagens : 113
Insígnias de JAM :

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

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

Re: Atravessar plataforma e parar em cima dela

em Dom 15 Mar 2009, 17:23
Bem, eu só irei responder a sua pergunta, o resto é você quem irá fazer.

1-Criar estes objetos:
-Um obj_personagem
-Um obj_bloco

2-Programar o obj_personagem
-Adicione um evento de colisão com o obj_bloco
-No evento adicione um código e escreva:

Código:
if global.solido=true
if vspeed>-0.1
{
if other.y-16>y
{
x=self.x
y=other.y-32
vspeed=0
solo=true
}
}
else
{
//nenhum//
}


3-Programar o obj_bloco
-Adicione um evento create.
-No evento adicione um código e escreva:

Código:
global.solido=false

-Adicione um evento step.
-No evento adicione um código e escreva:

Código:
 if obj_personagem.y<y and distance_to_object(obj_personagem)<4{global.solido=true}
 

 



PRONTO!!
Coloque seu obj_personagem e seu obj_bloco na room e teste!! Smile
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