Entrar
Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game makerpor 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
Página 1 de 1
Dúvida em código
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:
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.
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- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida em código
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.
logo, esse numero pode ser aplicado em qualquer lugar.
explique mais, porque não entendi muito bem o que quer saber.
Re: Dúvida em código
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
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- Games Ranking :
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 :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: Dúvida em código
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:
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.
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)
- 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.
Re: Dúvida em código
Willy, indo mais profundamente, qual seria uma utilidade pra isso?qual a diferença se uso isso checando colisão na parede?
Denbs- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida em código
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.
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.
Re: Dúvida em código
Willy, agora estou entendendo o raciocínio, esperando engine ;D, vlw.
Denbs- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida em código
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.
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.
Re: Dúvida em código
Beleza, entendi perfeitamente o que você quis dizer. Apenas quero que responda algumas coisas:
->Ao usar repeat(- 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
->Ao usar repeat(- 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- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Dúvida em código
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.
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.
Re: Dúvida em código
Valeu pela ajuda =D, pode trancar aqui
Denbs- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» codigo para objeto mudar de cor e codigo para voltar ao normal
» Ajuda com codigo
» Código com object_event_add
» Jogo de tabuleiro
» Criar um sub codigo
» Ajuda com codigo
» Código com object_event_add
» Jogo de tabuleiro
» Criar um sub codigo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|