GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Trancado] Como verificar objeto de outro objeto?

4 participantes

Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty [Trancado] Como verificar objeto de outro objeto?

Mensagem por iSillum Sex 25 Jan 2013, 23:44

Tenho um objeto porta e um objeto jogador, queria a partir do objeto porta saber se o objeto jogador pressionou uma tecla (no caso UP), como eu faço?

Tenho o obj_jogador, e no obj_porta coloque no step assim:

Código:
image_speed=0
image_index=0
if with(obj_jogador) keyboard_check(vk_up){
    with(obj_porta)
    image_speed=1 //sprite da porta abrindo
}

(jogo em plataforma)
Quando o jogador fica em frente a porta, se ele pressionar UP executa a animação da porta se abrindo.

Eu sei que isso não funciona, mas é só pra vocês entenderem o que eu queria.


Última edição por iSillum em Sáb 26 Jan 2013, 13:33, editado 1 vez(es)
iSillum
iSillum

Data de inscrição : 22/01/2013
Reputação : 0
Número de Mensagens : 72
Prêmios : [Trancado] Como verificar objeto de outro objeto? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty Re: [Trancado] Como verificar objeto de outro objeto?

Mensagem por Thyago Sex 25 Jan 2013, 23:55

.keyboard_check é global,não precisa de with basta verificar se a tecla foi pressionada.
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : [Trancado] Como verificar objeto de outro objeto? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

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

Ir para o topo Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty Re: [Trancado] Como verificar objeto de outro objeto?

Mensagem por Super Maker Sáb 26 Jan 2013, 01:00

Podes checar a clolisão a partir do player usando esse bloco:
Código:
if keyboard_check(vk_up){
    with(other) {
        //animação da porta aqui
    }
}
Ou a partir da porta com esse:
Código:
if keyboard_check(vk_up){
        //animação da porta aqui
}
Eu particularmente usaria um keyboard_check_pressed(vk_up) pra animação dos dois tomar conta do momento.
Super Maker
Super Maker

Data de inscrição : 09/07/2011
Reputação : 6
Número de Mensagens : 646
Prêmios : [Trancado] Como verificar objeto de outro objeto? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty Re: [Trancado] Como verificar objeto de outro objeto?

Mensagem por NPH Sáb 26 Jan 2013, 09:56

Ei iSillum, eu fiz um jogo meio "sem noção" que utilizava portas automáticas!
Se quer fazer isso em seu jogo, eu posso te ensinar agora!
CREATE EVENT
Código:

image_speed=0; //desativa a animacao
porta_aberta=false;//indica se a porta esta aberta ou nao
No STEP EVENT
Código:

//checa se o jogador esta a 5 pixels de distancia da porta:
if (distance_to_object(obj_jogador)<5){ porta_aberta=true;}//se sim, abrir a porta
else if (distance_to_object(obj_jogador)>4){porta_aberta=false;}//se nao, fechar a porta
Fazendo isso você já tem a porta programada para abrir assim que você chegar perto dela e fechar se você se afastar.
Mas ainda faltou um detalhe: Como a porta irá se abrir se image_speed for 0?
Ainda no Step coloque:
Código:

//se a porta estiver aberta, animar o sprite
if (porta_aberta=true)and(image_index<image_number-1){image_speed=0.3;}
//Se a porta estiver fechada, animar o sprite de forma reversa
else if (porta_aberta=false)and(image_index>0){image_speed=-0.3;}
Fazendo isso, você não terá que apertar uma tecla para que a porta se abra, mas se você quer apertar uma tecla (no seu caso VK_UP), então troque a primeira parte do step por este outro:
STEP EVENT
Código:

//checa se o jogador esta a 5 pixels de distancia da porta e se pressionou a tecla UP:
if (distance_to_object(obj_jogador)<5)and(keyboard_check_pressed(vk_up))
{porta_aberta=true;}
//checa se o jogador esta a mais de 9 pixels de distancia da porta para fecha-la:
else if (distance_to_object(obj_jogador)>9){porta_aberta=false;}
Fazendo isso, a sua porta irá abrir somente se você apertar a tecla UP, e se fechará sozinha ao se afastar dela!
Esperto ter te ajudado! [Trancado] Como verificar objeto de outro objeto? 127735
[edit]
Se tiver algum bug com a animação me avisa!
NPH
NPH

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/11/2010
Reputação : 58
Número de Mensagens : 504
Prêmios : [Trancado] Como verificar objeto de outro objeto? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty Re: [Trancado] Como verificar objeto de outro objeto?

Mensagem por iSillum Sáb 26 Jan 2013, 13:29

Pessoal, lendo a resposta de cada um, e dando uma boa pesquisada e quebrando a cabeça cheguei a um código do qual estou muito satisfeito:

Declarei essas vareias no obj_porta no evento create

Código:
//variaveis auxiliares
entrando=false
global.dentrodaporta=false
saindo=false

Coloquei isso no obj_porta o evento step

Código:
//deixa o sprite da porta fechada
image_speed=0

//para saber se quer entrar na porta
if place_meeting(x,y,obj_jogador){//muda a variavel somente se estiver na porta
    if keyboard_check(vk_up) and global.dentrodaporta==false{//muda a variavel se estiver na porta e apertar UP
        entrando=true
    }
}

//executa animaçao da porta abrindo para entrar
if entrando==true{
    if(image_index<29){image_speed=1}
}

//entra quando a porta estiver aberta (no frame 14)
if image_index==14 and entrando==true{
    with(obj_jogador){depth=1}
    global.dentrodaporta=true//para ativar outras funçoes do jogo...

}



//para saber se quer sair da porta
if place_meeting(x,y,obj_jogador){//muda a variavel somente se estiver na porta
    if keyboard_check(vk_down) and global.dentrodaporta==true{//muda a variavel se estiver na porta e apertar DOWN
        saindo=true
    }
}

//animacao da porta abrindo para sair
if saindo==true{
    if(image_index<29){image_speed=1}
}

//para o jogador fica visivel novamente
if image_index==14 and saindo==true{
    with(obj_jogador){depth=-1}
    global.dentrodaporta=false//para ativar outras funçoes do jogo...
}

//muda a variavel quando o jogador estiver "dentro" ou "fora" da porta
if image_index==29{
    image_index=0
    entrando=false
    saindo=false
}



E coloquei pro jogador não se mover enquanto estiver na porta isso(no objeto jogador):

Código:
if keyboard_check(vk_right) and global.dentrodaporta==false /*nao se mover se estiver na porta*/{codigo}
if keyboard_check(vk_left) and global.dentrodaporta==false /*nao se mover se estiver na porta*/{codigo}

Obrigado todo mundo que respondeu, tópico resolvido!
iSillum
iSillum

Data de inscrição : 22/01/2013
Reputação : 0
Número de Mensagens : 72
Prêmios : [Trancado] Como verificar objeto de outro objeto? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Trancado] Como verificar objeto de outro objeto? Empty Re: [Trancado] Como verificar objeto de outro objeto?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos