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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

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

» 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


Dúvida em código

4 participantes

Ir para baixo

Dúvida em código Empty Dúvida em código

Mensagem por Denbs Dom 27 Jan 2013, 20:32

Iae galera,
to com uma pequena dúvida em um código que vi em tutoriais em algumas engines,
eles davam uma explicação mas não entendi por completo como funciona.
Aqui está o código:
Código:
 if keyboard_check(bláblá..){if place_free(x+---hspeed---,y,bláblá,blaá{
blábláblá acontece}}

O que eu quis enfatizar foi o uso do hspeed checando um espaço vazio.Eu
quero entender não só esse uso, mas de qualquer forma que use uma
mistura de variáveis diferentes(como posição x e velocidade horizontal),
espero que entendam minha dúvida,
Obrigado.
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Dúvida em código 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

Dúvida em código Empty Re: Dúvida em código

Mensagem por theguitarmester Dom 27 Jan 2013, 20:35

o que é uma VARIAVEL(no caso real)? é um numero.

logo, esse numero pode ser aplicado em qualquer lugar.


explique mais, porque não entendi muito bem o que quer saber.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2209
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por RafaelCazarotto Dom 27 Jan 2013, 20:39

a parte do place_free checa se a posiçao a sua frente é livre isso é usado para as colisões é um sistema otimo =] explicando melhor
se a tecla blablabla for pressionada e se na frente blablabla pixeis esta livre então
{
blablabla
}
é isso que acontecde ( usei os blablabla's hehehe)
vlw espero ter ajudado
RafaelCazarotto
RafaelCazarotto

Games Ranking : Nota C

Notas recebidas : D-D-D-C-C-B
Data de inscrição : 15/03/2012
Reputação : 13
Número de Mensagens : 564
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por Willy Dom 27 Jan 2013, 20:46

Hspeed, como deve saber, é a velocidade horizontal de um objeto.
Assim sendo, esse hspeed é equivalente a checar um numero expecifico em pixels.

Por exemplo, se o seu objeto se move horizontalmente usando hspeed com velocidade 4:

Isso:
Código:
place_free(x+hspeed,y)
é o mesmo que:
Código:
place_free(x+4,y)

Esse código só funciona se você usar hspeed para se movimentar. Se usar "x+=" não vai funcionar, pois o hspeed vai estar valendo zero.
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por Denbs Dom 27 Jan 2013, 20:52

Willy, indo mais profundamente, qual seria uma utilidade pra isso?qual a diferença se uso isso checando colisão na parede?
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Dúvida em código 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

Dúvida em código Empty Re: Dúvida em código

Mensagem por Willy Dom 27 Jan 2013, 21:14

Isso é indicado quando for fazer uma velocidade que não seja fixa (ou seja, que nunca seja apenas 4, mas que varie esse valor para mais ou para menos.)

Imagine que, você tem o objeto de um carro. Ele começa lento e vai aumentando sua velocidade aos poucos.
Se o carro estiver bem rápido e tiver uma parede em seu caminho, o carro vai ignorar a parede, passando direto. Isso ocorreria, se por exemplo, usasse place_free(x+1,y).
Mas, caso esteja usando hspeed, o provavelmente a parede vai ser percebida, e então, o carro vai bater. Digo "provavelmente" pois dependendo da velocidade do carro, ele ignora mesmo assim. Mas isso é assunto pra outra historia (se quiser, eu tento explicar).

Isso é meio dificil de explicar com palavras... Vou fazer uma pequena engine pra demonstrar a diferença.
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por Denbs Dom 27 Jan 2013, 21:23

Willy, agora estou entendendo o raciocínio, esperando engine ;D, vlw.
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Dúvida em código 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

Dúvida em código Empty Re: Dúvida em código

Mensagem por Willy Dom 27 Jan 2013, 21:34

Pronto, talvez saia mais confuso ainda. XD
Engine

Bom, na engine, existem 3 cubos que se movem com a mesma velocidade até a parade localizada à direita da tela.
Sendo que, de cima para baixo, o primeiro cubo usa place_free usando hspeed, o segundo usa um valor fixo, porém, checa um pouco mais que sua velocidade. Já o terceiro, usa um sistema de colisão "x+=" combinado com repeat, o que deixa uma colisão perfeita.

Explicando o que acontece:
O primeiro bloco está "antecipando" sua velocidade antes de andar, porém, por ser um valor alto, o bloco pode se atrofiar na parede.
O segundo antecipa um pouco mais que sua velocidade, impendindo sua colisão com a parede, porém, fica claro que ele nem chegou a colidir.
O terceiro se move de 1 em 1 px, porém, ele faz isso 8x mais rapido (graças ao repeat). Por ser 1px de espaço por vez, não há como passar o bloco ou ficar antes dele.

Caso use friction, o place_free(x+hspeed,y) pode ser mais indicado. Infelizmente o sistema de colisão do GM não é muito bom, portanto não espere bons resultados.

Duvidas é só falar. blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por Denbs Dom 27 Jan 2013, 21:52

Beleza, entendi perfeitamente o que você quis dizer. Apenas quero que responda algumas coisas:
->Ao usar repeat(Cool- ele executa o código 8 vezes em um segundo?
-> caso estivesse x+2 ele ainda poderia entrar na parede pois estaria "pulando" um pixel?
->usando o ultimo método(repeat) o pc usa mais memória?"se esforça mais"?

Desculpe se estou perguntando muito =P, vlw
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Dúvida em código 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

Dúvida em código Empty Re: Dúvida em código

Mensagem por Willy Dom 27 Jan 2013, 22:11

Sim, o repeat executa a mesma ação 8x, mas não por segundo, e sim, por step. Apesar da velocidade "aparentemente" ser a mesma, o repeat passa pixel por pixel, deixando a colisão perfeita.

Caso use x+2, ele sempre ficaria 1px antes da parede, ficando uma pequena linha imaginaria de 1px de largura entre a parede e o objeto. Aconcelho a deixar sempre x+1. Caso queira que o objeto vá mais rápido ou devagar, mude o valor do 8. Faça um teste, coloque um número grande, como 60, e veja como a colisão será perfeita.

Com relação a memória, acredito que sim. Mas em um código pequeno como este quase não se tem impacto. Mas tome cuidado ao usar repeat, ele pode travar o pc facilmente, dependendo do código que for repitido.

Não se preocupe em fazer perguntas, estou aqui para ajudar. blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Dúvida em código Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Dúvida em código Empty Re: Dúvida em código

Mensagem por Denbs Dom 27 Jan 2013, 23:51

Valeu pela ajuda =D, pode trancar aqui
Denbs
Denbs

Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios : Dúvida em código 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

Dúvida em código Empty Re: Dúvida em código

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