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

Cristiano Camacho, rafaelviodres1

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

[DUVIDA] pedra maluca

em Dom 15 Jul 2012, 19:58
Reputação da mensagem: 50% (4 votos)
queria pedir um tutorial de quando meu obj_player se aproxima de uma pedra que está encima da tela a pedra cai tipo aquela pedra que tem no jogo do mario, ta ligado ? ai ela sobe denovo e fica esperando o obj_player se aproxima

Like a Star @ heaven
avatar
Data de inscrição : 03/02/2012
Número de Mensagens : 254
Insígnias de JAM :

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

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 20:50
Tem um jeito facim facim.
Eu gosto de fazer isso com 'ativadores por condição' (Eu inventei este nome)

OBS: Para o exemplo é necessário o jogo ser de plataforma.

Simples, crie um objeto atv_pedra e desmarque visible.
No evento Create coloque:

Código:
global.atv01 = false

No evento Collision with Player coloque

Código:
global.atv01 = true
instance_destroy()

--------

Agora crie obj_pedra e coloque ela em cima de algum bloco no ar...
No evento Step do obj_pedra coloque:

Código:
if global.atv01 = true {x-=32}

Na sua Room, coloque o atv_pedra aonde você quiser que o player ative a pedra.

and that's all =]
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1295
Insígnias de JAM :

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

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 21:09
Reputação da mensagem: 100% (1 votos)
Ou vc pode por, if collision_rectangle (para baixo) vspeed= velocidade.
EM colisão com o bloco, vspeed=0.

if vspeed=0 and !place_meeting(x,y-1,obj_bloco)
{vspeed=-velocidade}

A lógica é essa Happy. espero que entenda.
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

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

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 21:33

Verifique a distancia X entre a pedra e o player e também se o Y da pedra
é menor que o Y do player para ela poder cair, desse jeito:

Código:
if abs(x - obj_player) > 64
{
 if y < obj_player.y
 {
  //Fazer a pedra cair
 }
}
 
Caso queira algo mais especifico, é só falar!

Flw! sorrindo2
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 22:10
nao ta funcionando
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 416
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:19
Seja mais específica por favor, o que exatamente você fez para tentar fazer funcionar, e qual o erro de código/comportamento que dá pra notar?
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:27
create()

gravity=0

step()

if abs(x - obj_player) > 64
{
if y < obj_player.y
{
gravity=1
}
}

colision() com chao

bouce solid precisely

//logo de cara o obj ganha gravidade

off topico

por que perdi mais 10% da barra de alerta?


Última edição por Mina do Rock em Dom 15 Jul 2012, 23:30, editado 2 vez(es)
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 416
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:29
Tem que ser o X do obj_player, assim com o y.

Coloque (x - obj_player.x) para comparar x com x, e tente novamente.
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:37
if abs(x - obj_player.x) > 64

não funcionou, mais td bem eu vou procurar uma maneira vlw
avatar
Data de inscrição : 29/05/2008
Número de Mensagens : 416
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://felipejoys.webnode.com

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:46
Tente assim...

Código:
if (obj_player.x < x && obj_player.x > x - 120) // Se o player estiver à esquerda da pedra e estiver mais perto que 120 pixels
{
    vspeed = 6; // Descer
}
else if (obj_player.x > x && obj_player.x < x - 120) // Se o player estiver à direita da pedra e estiver mais perto que 120 pixels
{
    vspeed = 6; // Descer
}
else // Se nenhum dos dois
{
    vspeed = 0; // Parar
}

Dá para colocar mais coisas, como só funcionar se o player estiver abaixo da pedra, mas isso que eu pus deve ser o basicão. Deve funcionar.
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

Re: [DUVIDA] pedra maluca

em Dom 15 Jul 2012, 23:50
KinKing

funcionou perfeitamente vlw cara e obrigado a todos q tentaram me ajudar, sou muito noob ainda vlw
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1295
Insígnias de JAM :

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

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

Re: [DUVIDA] pedra maluca

em Seg 16 Jul 2012, 11:48
O código do kinking, as partes "if (obj_player.x < x && obj_player.x > x - 120)" podem ser substituídas por collision_rectangle(x,y,x-120,y, obj_char), só pra simplificar um pouquinho Happy .
Data de inscrição : 29/05/2012
Número de Mensagens : 929
Insígnias de JAM :

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

Re: [DUVIDA] pedra maluca

em Ter 17 Jul 2012, 01:30
gente boa consegui fazer o que queria e acho que talvez seja a forma mais facil de fazer gostaria que vcs postassem outras formas se for mais simples e funcionam.
vlw

ENGINE.
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