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
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Como segurar na borda?

4 participantes

Ir para baixo

Como segurar na borda? Empty Como segurar na borda?

Mensagem por Naut2006 Seg 17 Ago 2009, 14:08

Fala galera. To com um problema aqui que nã consigo resolver de jeio nenhum.
É que eu quero que o personagem agarre na borda do chão. Para quem não entendeu, uma imagem:

Como segurar na borda? Imagemacc

Ele tem que mudar o sprite para o dele segurando ali na borda do chão e ficar com a mão em cima do chao. Uma pequena montagem pra vcs entenderem melhor o que eu quero:

Como segurar na borda? Imagemfnl

Vlw galera =D

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Ter 18 Ago 2009, 20:07

Tava esperando alguem postar, mas como não aconteceu, eu vou ter que dar doublepost mesmo, pra não ter que criar outro tópico. É que surgiu outra dúvida:

Quando eu coloco para um sprite seguir outro (tipo x=objeto.x e y=objeto.y) ele até seugue o outro, mas quando ele faz movimentos muito rápidos (como é para seguir o player, normalmente quando ele pula ou está caindo) o outro objeto vai seguindo ele mas com um atraso, um pouco atras dele. Queria saber como faz para ficar SEMPRE na mesma posição que o player

Vlw, e maus o double-post Razz

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Janx Ter 18 Ago 2009, 20:17

o jeito mais facil para as bordas é colocar um detector, que quando o player bate nele ele entende que está segurando na borda.

Quanto a seguir o objeto, coloque no draw dele:
Código:
x = objeto.x;
y = objeto.y;

Caso seu personagem 'suma' é pq o evento de desenha-lo automaticamente do GM foi cancelado por você adicionar o evento draw, entao adicione o codigo ABAIXO desse que falei:

Código:
draw_sprite(sprite_index,image_index,x,y);

OBS: isso desenha o sprite sem nenhuma mudança como 'image_blend', 'image_angle', 'image_alpha', etc. Que so poderiam ser usadas na versao pro do GM.
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Ter 18 Ago 2009, 20:39

O negocio de seguir funciona blz, mas o da borda eu já fiz isso e não funciono, pq o sprite muda mas ele continua caindo, quando ele fica parado não é com a mão em cima ali do chao, entende?

Mas vlw de qualquer jeito =D

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por CPinheiro Qua 19 Ago 2009, 16:43

Olha cara, o melhor jeito de fazer isso é programando um movimento por estados, mas isso é um pouco complicado. Se quiser, deve ter tutoriais na Net, mas a base é essa:

Create:
Código:

state_tipo=0; //0 no chão, 1 no ar
state=0; //o estado no personagem: um exemplo: 0 parado, 1 andando, 2 atacando, 3 agachado. Se estiver no ar (state_tipo=1), 0 pulando, 1 caindo, 2 atacando no ar, etc.

Então, no caso, teria uma situação de que se o personagem estivesse caindo, estiver colidindo de LADO com o bloco e o jogador apertar uma tecla que faça isso (Up, por exemplo), muda o estado dele para pendurado:

Código:

state= 5 //Aqui, você coloca um número que você escolhe para quando ele está pendurado, por exemplo, 5

Então, no movimento, você coloca o seu código (do movimento) dentro dessas chaves:

Código:

if (state!=5) //Se NÃO estiver pendurado
{
//código do movimento
}

Esse código acima é para que o personagem não saia andando enquanto está segurando. Depois, é só fazer com que ele possa se despendurar dando um 'salto', por exemplo:

Código:

if keyboard_check_pressed(vk_up) && (state==5) //Se apertou tecla Up (seta pra cima) e o jogador está pendurado
{
vspeed=-5; //jogador pula, por exemplo
state=0;
state_tipo=1; //Essas duas linhas iriam trocar o estado dele: state_tipo=1 (no ar, não está no chão) e state=0 (está pulando)
}


Essa é a base, é só você adaptar o movimento do seu jogo e ir testando até conseguir eliminar todos os bugs. Boa sorte. o/
Falows.
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Qua 19 Ago 2009, 20:18

Não funcionou. Gente, é que vcs tao se esquecendo que a mão tem que ficar em cima da borda, e é isso que eu não to conseguindo :/

Mas vlw pela ajuda ate agora

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Janx Qua 19 Ago 2009, 21:32

faz para quando ele colidir no detector, mudar a posiçao dele.
PRA QUAL?!?!
Nao sei, testa ai até ficar na posiçao correta.

Lembre-se de desativar a gravidade e zerar a velocidade para ele nao se mover mais enquanto segura na borda!!
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por CPinheiro Qua 19 Ago 2009, 21:35

E não se esqueça de reativar isso depois, quando ele largar a borda. Pode parecer algo óbvio e idiota, mas é um erro bobo que as vezes nos rende dores de cabeça. É sério.
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Qua 19 Ago 2009, 22:10

Não sei se é um bug do gm, mas já tentei zerar a gravidade e ele continua caindo. Já tentei usar o vspeed=0 tbm nao funciona. E mudar pra uma certa posição nao adianta, ja que tem mais de uma borda no jog. de qualquer forma, ta aqui o codigo que eu tenho agora:

Código:
if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
    {x=obj_chao_canto_esq.x
    y=obj_chao_canto_esq.y
    segurando=true
    sprite_index=sprite21}

Mas não funciona :/

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por CPinheiro Qua 19 Ago 2009, 22:12

Tentou usar os dois ao mesmo tempo?
Desculpe, não pude avaliar seu código, tenho que sair agora. :\
Boa sorte aí.
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Janx Qui 20 Ago 2009, 13:38

Naut2006 escreveu:Não sei se é um bug do gm, mas já tentei zerar a gravidade e ele continua caindo. Já tentei usar o vspeed=0 tbm nao funciona. E mudar pra uma certa posição nao adianta, ja que tem mais de uma borda no jog. de qualquer forma, ta aqui o codigo que eu tenho agora:

Código:
if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
    {x=obj_chao_canto_esq.x
    y=obj_chao_canto_esq.y
    segurando=true
    sprite_index=sprite21}

Mas não funciona :/

Goodbye Happy

tente o codigo assim:

Código:

if collision_rectangle(x+3,y-50,x+13,y-7,obj_chao_canto_esq,true,0)
    {x=obj_chao_canto_esq.x
    y=obj_chao_canto_esq.y
    segurando=true
    sprite_index=sprite21
    vspeed = 0;
    gravity = 0;
}

e de uma olhada se nao tem em nenhum lugar que está setando a gravidade para outro valor dinovo!!!!
Se tiver coloque uma comparaçao como:
Código:
if !segurando
{
  ....
  ...
  gravity = ??
}

flw
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

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

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Qui 20 Ago 2009, 22:39

Não funciona gente :/ Eu já verifiquei a gravidade, ta para ficar zero mesmo. To mandando o arquivo do projeto, para voces terem uma ideia melhor do que ta acontecendo:

Projeto_2.gmk - 0.04MB

São só 40kb. Caso possivel deem uma olhadinha pra ver se não tem nada errado no codigo.

Valeu mesmo pelo esforço que vc tao fazendo


Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Kabeção Sex 21 Ago 2009, 00:28

Oh sim!
Há muitas coisas erradas.
A começar pela impressão de não ter nada errado. Razz

Você está mandando ele ficar parado na parede não importa o que aconteça.
Mesmo se jogador apertar o botão de pular ele ainda vai estar sendo ordenado o ficar parado nas bordas.
Então uma condição deve ser feita no evento de colisão para quando o jogador querer pular o código da colisão não fazer mais efeito.

Você esta usando variaveis para estado não é?
Então quando o estado for o de pulo, o código que manda ele ficar parado é anulado.
Para endenter melhor um exemplo:
Código:
if pulo = false
{
    move_contact_solid(direction,8)
    vspeed=0
}

Fique atendo a programação dos outros estados também.
Esse tipo de bug acontece sempre.
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Como segurar na borda? Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

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

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Naut2006 Sex 21 Ago 2009, 00:59

Vlw kabeção. To reformulando o movimento dele aqui, depois eu digo se deu certo =D

Goodbye Happy
Naut2006
Naut2006

Data de inscrição : 11/08/2009
Reputação : 0
Número de Mensagens : 213
Prêmios : Como segurar na borda? 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

Como segurar na borda? Empty Re: Como segurar na borda?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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