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
» Problemas com particulas
por RastaMaan Hoje à(s) 17:03

» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» 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


[Resolvido]Me ajudem a entender esse código

3 participantes

Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty [Resolvido]Me ajudem a entender esse código

Mensagem por .:Allison:. Ter 21 Jun 2011, 18:52

Bom, eu estava vendo uma engine de colisão perfeita em rampas, e achei essa engine, porém não posso usar se não entender, pedi ajuda para alguns amigos porém não consegui, eu sei para que serve, é para a movimentação, porém queria saber como funciona cada linha de código que contém o script, queria que vocês me ajudassem, principalmente na parte do for e tipo a variável i, mudará de valor constantemente, poderiam mim dizer também em cada linha qual o seu valor? fico grato desde já! Aquele que me ajudar terá +1 de reputação!!

argument0 = 3
argument1 = vk_up
argument2 = vk_down
argument3 = vk_left
argument4 = vk_right
var i;
if (keyboard_check(argument1))
for (i=argument0;i>=0;i-=1)
if (place_free(x,y-i))
y-=i;
else
{
if (place_free(x-i,y-i))
x-=i/2;
if (place_free(x+i,y-i))
x+=i/2;
}
if (keyboard_check(argument2))
for (i=argument0;i>=0;i-=1)
if (place_free(x,y+i))
y+=i;
else
{
if (place_free(x-i,y+i))
x-=i/2;
if (place_free(x+i,y+i))
x+=i/2;
}
if (keyboard_check(argument3))
for (i=argument0;i>=0;i-=1)
if (place_free(x-i,y))
x-=i;
else
{
if (place_free(x-i,y-i))
y-=i/2;
if (place_free(x-i,y+i))
y+=i/2;
}
if (keyboard_check(argument4))
for (i=argument0;i>=0;i-=1)
if (place_free(x+i,y))
x+=i;
else
{
if (place_free(x+i,y-i))
y-=i/2;
if (place_free(x+i,y+i))


Última edição por .:Allison:. em Ter 21 Jun 2011, 20:25, editado 1 vez(es)
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : [Resolvido]Me ajudem a entender esse código Empty

Medalhas x 0 Tutoriais x 14 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://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse código

Mensagem por Klior Ter 21 Jun 2011, 19:59

.:Allison:. escreveu:Bom, eu estava vendo uma engine de colisão perfeita em rampas, e achei essa engine, porém não posso usar se não entender, pedi ajuda para alguns amigos porém não consegui, eu sei para que serve, é para a movimentação, porém queria saber como funciona cada linha de código que contém o script, queria que vocês me ajudassem, principalmente na parte do for e tipo a variável i, mudará de valor constantemente, poderiam mim dizer também em cada linha qual o seu valor? fico grato desde já! Aquele que me ajudar terá +1 de reputação!!

argument0 = 3
argument1 = vk_up
argument2 = vk_down
argument3 = vk_left
argument4 = vk_right
//argumentos 1, 2, 3, 4 são utilizados para facilitar o usuário da engine modificar as teclas de movimentação do objeto.
//argumento 0 = speed

var i;//criando variável i
if (keyboard_check(argument1)) //verifica se vk_up está pressionado
for (i=argument0;i>=0;i-=1) //cria um loop para mover o objeto, ele primeiramente vai verificar se "y - 3" existe um objeto solido, se não existir o player se moverá "y -=3", caso exista, ele verificará "y - 2", caso não haja objeto solido o objeto se moverá "y -= 2" caso exista um objeto solido, ele verificará se existe um em "y - 1", se não existir o objeto se moverá "y -= 1"

if (place_free(x,y-i)) //vai verificar se existe um objeto solido em "y - i", ou seja "y - 3, y -2, y - 1"
y-=i; //caso na posição "y - i" não exista um objeto "solido" o objeto se moveria -1, -2 ou -3 pixel na vertical
else //se y - i houver um objeto solido.
{//aqui vai acontecer o seguinte, sabe quando o player está na "quina" de um objeto.. e se pressionado para cima ele da uma deslisada na diagonal..
if (place_free(x-i,y-i)) //verificará se na posição "x-i" e "y-i" não há um objeto solido, caso não haja, moverá o objeto para esquerda, tirando-o do raio de colisão com o objeto que está a sua frente(y-i).
x-=i/2; //deslocará o objeto para "x - 0,5" ou "x - 1" ou "x - 1,5", dependerá do valor de "i", i terá valores "0, 1, 2, 3"
if (place_free(x+i,y-i))//mesma coisa que o código acima, só que verificando as posição do lado direito.
x+=i/2;
}
if (keyboard_check(argument2))
for (i=argument0;i>=0;i-=1)
if (place_free(x,y+i))
y+=i;
else
{
if (place_free(x-i,y+i))
x-=i/2;
if (place_free(x+i,y+i))
x+=i/2;
}
if (keyboard_check(argument3))
for (i=argument0;i>=0;i-=1)
if (place_free(x-i,y))
x-=i;
else
{
if (place_free(x-i,y-i))
y-=i/2;
if (place_free(x-i,y+i))
y+=i/2;
}
if (keyboard_check(argument4))
for (i=argument0;i>=0;i-=1)
if (place_free(x+i,y))
x+=i;
else
{
if (place_free(x+i,y-i))
y-=i/2;
if (place_free(x+i,y+i))

Não sei se fui muito explicativo, mais acho que vai entender, caso não entenda alguma coisa me diga que tento explicar melhor..

Acho muito interessante você tentar compreender o código, a maioria dos usuários só copiam e colam mesmo não entendendo o funcionamento

Editado: Agora, prestando mais atenção vi que você falou "eu estava vendo uma engine de colisão perfeita em rampas", pelo que eu entendi esse código é para jogos rpg, vou testar esse código, caso não seja isso que falei dou outro edited..


Última edição por Klior em Ter 21 Jun 2011, 20:44, editado 4 vez(es)
Klior
Klior

Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios : [Resolvido]Me ajudem a entender esse código 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • C#
  • Javascript


Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse código

Mensagem por .:Allison:. Ter 21 Jun 2011, 20:25

Muito obrigado a você, por ter dado a formula, e muito obrigado ainda à o LCS que conversando pelo msn , conseguiu entender a sua explicação e mim explicou mais detalhado ainda ! Agradeço aos dois por terem a paciência de querer mim ajudar, graças a vocês dois, eu entendo muito bem o for !

Resolvido, não pedirei para ninguem trancar, se o Klior quiser postar mais alguma coisa !!! Pode postar !
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : [Resolvido]Me ajudem a entender esse código Empty

Medalhas x 0 Tutoriais x 14 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://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse código

Mensagem por MatheusReis Ter 21 Jun 2011, 20:33

Como o klior disse, é um codigo de rpg:
[Resolvido]Me ajudem a entender esse código EXP
Resumindo, o código primeiramente tenta mover na direção indicada. Se não conseguir(colisão com parede) ele vai tentar mover nas diagonais, no caso de paredes na diagonal(deslizando).
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : [Resolvido]Me ajudem a entender esse código Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse código

Mensagem por Klior Ter 21 Jun 2011, 20:34

Desculpa não ter explicado corretamente antes, porque eu não tinha reparado que o loop era subtrativo, dei uma editada no meu post explicando de forma correta. Abraços
Klior
Klior

Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios : [Resolvido]Me ajudem a entender esse código 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • C#
  • Javascript


Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse código

Mensagem por .:Allison:. Ter 21 Jun 2011, 20:38

Entendi perfeitamente agora, no caso é um movimento mais preciso do que usar place_metting, por que ele não sai dando pulinhos e é mais simples do que usar seno e cosseno.
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : [Resolvido]Me ajudem a entender esse código Empty

Medalhas x 0 Tutoriais x 14 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://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

[Resolvido]Me ajudem a entender esse código Empty Re: [Resolvido]Me ajudem a entender esse 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