Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Jun 2008, 17:35

Atualização: Incerido um link para a engine de exemplo na parte "Vamos testar essa noção de controle q passei". ;)

by Kabeção afro
Nivel: iniciante plus
Descrisão: Com isso vc vai poder usar dois personagens ao mesmo tempo na tela e controlalos simutaneamente por codigo. da ate pra vc controlar e montar tipo um filme sem alterar os controles e criar codigos imensos pra isso. aprendi isso com engines por ai e aperfeisoando-as.

Meu primeiro tuto aq. Very Happy
Ta ae, sem preguiça leia tudo pra entender:

Controle de movimento personalizado

Vamos começar então:
No Evento create do char (personagem. sempre chamo assim)
Crie variaveis para os controles:
Código:
// Variaveis de movimentação
// :: Definindo teclas de Controle :: //
// baixo, cima, esquerda, direta respectivamente
defini_key_down=vk_down
defini_key_up=vk_up
defini_key_left=vk_left
defini_key_right=vk_right
// Acao1 do jogador
defini_key_acao1=vk_space

// :: Definindo variaveis da interação :: //
// São as fundamentais para poder se controlar o char
// Defina tudo como 0 (false), pois não a ação no principio.
key_down=0
key_up=0
key_left=0
key_right=0
key_acao1=0

// Bloqueio de movimento. o ponto chave do q vc queria.
// essa variavel bloqueiara os movimentos do char
bloq_mov=0

// Outros
// Defini a room_speed=60. Fica bem mais suave o movimento
room_speed=60
Pronto. as variaveis q vão controlar os movimentos do char foram criadas. Perceba q a uma para cada movimento ate para a acão (como o pulo). isso é apanes para definir os botões a serem usados. pode ser as primeiras variavies (mas não é uma boa ideia se for mudar constantemente os controles).

Proximo passo:
No evento Begin Step, digite:
Código:
if bloq_mov=0
{
    key_down=keyboard_check(defini_key_down)
    key_up=keyboard_check(defini_key_up)
    key_left=keyboard_check(defini_key_left)
    key_right=keyboard_check(defini_key_right)
    key_acao1=keyboard_check(defini_key_acao1)
}
Agora caso o bloq_mov seja 0 (false) sera checado o cada passo se o jogador apertou as teclas. Agora é so vc definir o bloq_mov como true e por os valores das keys como false e ai travara o movimento do char.

Vamos testar essa noção de controle q passei
No Step normal do char digite:
Código:
if key_left x-=4;
if key_right x+=4;
if key_up y-=4;
if key_down y+=4;
Isso fara o personagem se mexer. Note q não escrevi key_left=true, pq não a necessidade. o if checara o valor das variaveis q ja esta em boolean (logico: false, true). Por isso não é peciso por igualdades.

E bom q faça tudo sozinho, mas vc pode precisar de um exemplo pronto:
mov personalizado1.zip - 1.20MB


Vc sabe usar o Debug do Game Maker. se não vo encinar tb.
coloque uma sprite no obj do char. põe um quadrado qualquer mesmo.
Agora aperte F6 ou o botão da seta vermelha ao lado do Run.
Use as teclas q vc definiu, no exemplo: setas direcionais. O obj esta movimentando perfeitamente. agora vai na janela do Debug, clique em Tools>Execute Code. Na janela q ira aperecer difina bloq_mov como true.
Troque o pelo nome do objeto do char
Código:
<obj>.bloq_mov=true
Isso ira executar o codigo uma vez so. assim o char travara. mexa as setas pra ver.

Agora vamos controlar o char sem a ação do jogador. apenas por codigo.
na janela do Debug va d novo no Execute Code e difina key_down para true:
Código:
<obj>.key_down=true
Isso fara com q o objeto mova sem ação do personagem. aperta as setas para ver q não adianta. Seu char ja deve ter desaperecido da tela. Feche o jogo.
Isso conclui o q queria encinar. Se quiser vamos para testes mais complicados.

Testes Avançados

Fazendo um pequeno filme durante o jogo
Aqui vo ensinar a usar dois personagens jogaveis na mesma tela e controlos sem alterar os controles e com um codigo q não precisa definir tudo como isso ae:
Código:
if alarm[0]=0
{
    if x<200 x+=2;
    if x=200 vspeed=-8
    // ... e blablabla
}
Vai ser so trocando os valores das variaveis keys, com ajuda d alarms.

Irei terminar depois. to sem o GM e meio sem tempo agora. fiquem ligados nas atualizações, ou talvez faça um "parte 2". flw ;)


Última edição por kabecao em Ter 10 Jun 2008, 09:12, editado 2 vez(es)

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por KinKing em Dom 08 Jun 2008, 17:44

Não é mais fácil usar...

if keyboard_check(vk_left) x-=4;
if keyboard_check(vk_right) x+=4;
if keyboard_check(vk_up) y-=4;
if keyboard_check(vk_down) y+=4;

Sem ter que definir key_up como exatamente a mesma coisa de keyboard_check(vk_up), sendo que uma coisa seria a cópia da outra?

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Jun 2008, 17:48

vc leu todo? e entendeu para q ser isso exatamente?
Descrisão: Com isso vc vai poder usar dois personagens ao mesmo tempo na tela e controlalos simutaneamente por codigo. da ate pra vc controlar e montar tipo um filme sem alterar os controles e criar codigos imensos pra isso. aprendi isso com engines por ai e aperfeisoando-as. Fiz esse tuto a principio para responder a duvida do Dark Fulgore da PDJ.
se vc usar keyboard_check naum vai dar para bloq ar o movimento e controlar os personagens por codigo de um jeito mas simples.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por KinKing em Dom 08 Jun 2008, 18:18

Sim... basta colocar o seguinte:

if !(bloq_mov)
{
if keyboard_check(vk_left) x-=4;
if keyboard_check(vk_right) x+=4;
if keyboard_check(vk_up) y-=4;
if keyboard_check(vk_down) y+=4;
}

Não?

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Jun 2008, 18:40

hehe. vc ainda não entendeu.
se vc usar keyboard_check naum vai dar para bloq ar o movimento e controlar os personagens por codigo de um jeito mas simples.
Isso fara com q o objeto mova sem ação do personagem. aperta as setas para ver q não adianta. Seu char ja deve ter desaperecido da tela. Feche o jogo.
Isso conclui o q queria encinar. Se quiser vamos para testes mais complicados.
imagini assim. a função keyboard_check retorna um valor q não pode ser modado a memos q o player aperte ou folte a tecla. com as variaies keys, vc mesmo pode mudar o valor. assim vc pode controlar o movimento por codigo apenas definindo as keys como true.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por KinKing em Dom 08 Jun 2008, 18:51

Ah, agora entendi... você define as reações do personagem na hora em que as teclas são pressionadas. Por isso desse teu jeito é mais fácil.

Como eu uso, por exemplo...

if keyboard_check(vk_right) direita = true;

...então eu posso travar o movimento de qualquer jeito e usar essas variáveis.

Basicamente eu uso esse jeito aí para o movimento normal, por isso não entendi!

Valeu.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Jun 2008, 19:02

KinKing escreveu:Ah, agora entendi... você define as reações do personagem na hora em que as teclas são pressionadas. Por isso desse teu jeito é mais fácil.
Valeu.
scratch bem e quase isso. as acões ja estao definidas. se quer q o player não controle mais personagem, mas quer q o personagem mova para a direita sozinho. faça isso:
Código:
bloq_mov=false
key_right=true  // isso simula o aperto da seta direita, fazendo com q
                      // o char vai para a direta sem q o player aperte a tecla
assim vc pode bloquear o movimento do char1 e faza-lo andar sozinho enquanto o char2 na mesma tela pode ser controlado pelo player com o bloq_mov dele como false.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por KinKing em Dom 08 Jun 2008, 19:21

Sim, sim, eu entendo! É que eu uso o mesmo jeito para um personagem sem animações, e tal.

Eu faço o seguinte:

Código:
if keyboard_check(vk_right)
{
    direita = true;
    if (esquerda) esquerda = false;
}

if (direita) hspeed = velocidade;

Pelo menos a segunda parte, do if (direita), no step event.
Assim, meu código fica otimizado para alterações, que só precisam ser feitas ou no step ou no create event!

Enfim, é por isso que eu não entendi. Eu já fazia isso que você explicou no movimento normal. Já pensei de rebote em cinematics desse jeito que você falou, mas nunca a fundo. Foi legal ver a teoria explicada!

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Jun 2008, 19:58

agora sim chegamos ao um entendimento. hehe ;)
é isso ae mesmo.
depois de ver na teoria, vou fazer um exemplo para a continuação.
ate la. Cool

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Gusba em Ter 23 Set 2008, 19:43

muito bom cara!

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por RKNF1995 em Ter 23 Set 2008, 21:06

parabens gostei realmente a um tempo atras eu queria fazer isso num jogo mas como nao sabai acabei desistindo talvez eu de continuidade

RKNF1995

Número de Mensagens : 1257
Idade : 21
Data de inscrição : 19/07/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.rknf1995.blogspot.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Ter 23 Set 2008, 21:35

Hehe, vlw.
Esse foi o primeiro post aqui e a parte 2 ta demorando demais porque aprendi umas coisinhas que vou aplicar na continuação que agora sera sobre AI para boss.

Ta ficando da hora a engine, com um exemplo de boss feito de multiplas partes e um player mais um ajudante in game (tipo o Tales que fica segindo o Sonic nos seus jogos).

Mais ainda vai demorar porque o novo mmorpg que arrumei não me deixa continuar a engine. Laughing

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por PedroX em Ter 23 Set 2008, 22:04

gusba, ressuscitando topicos ne?
zuera

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Isaias em Ter 23 Set 2008, 23:00

Po Gostei do tutorial , vai ser bem útil pra mim hehe

vlw

Isaias

Número de Mensagens : 374
Idade : 23
Data de inscrição : 16/08/2008
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://isaiasramos.com

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por zain em Sab 07 Fev 2009, 14:48

será que com esse código da pra fazer kage bunshin no jutsu XD

zain

Número de Mensagens : 35
Data de inscrição : 04/02/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Kabeção em Dom 08 Fev 2009, 10:33

Sim. Eu uso isso para controlar outro personagem sem ser o jogador.
Como o adversario num jogo de luta.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Tirulink em Ter 10 Fev 2009, 19:33

haveria como vc upar a engine em um outro servidor, pq nao to conseguindo
baixar...

vlw

Tirulink

Número de Mensagens : 17
Idade : 31
Data de inscrição : 10/02/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Movimento personalizado (by Kabecao) pt1 Atualizado com engine

Mensagem por Conteúdo patrocinado Hoje à(s) 08:48


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum