O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Script de Pulo por tecla (Rhyan Script de Pulo)

Iniciado por Rhyan, 11/01/2020 às 04:39

11/01/2020 às 04:39 Última edição: 15/01/2020 às 03:36 por Rhyan
Olá! Este é meu primeiro script. Ele é um script de pulo por tecla (tecla personalizável). Para trocar a tecla de pulo é bem fácil, apenas substitua "0x41" (letra "A") por algum Virtual Key Code de alguma letra de sua preferência. EX: Se eu quero usar a letra "F" para pular, eu irei procurar o VKC (virtual key code) da letra e irei substituir o "0x41" por esse código que, no caso, é "0x46".

Lista dos Virtual Key Codes: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

Atualizações: Adicionado: Som ao pular | Alterado variável global para constante | Indentação alterada | Comentários adicionados | Licença MIT adicionada (Coloquei nova atualização apenas para evitar problemas em relação a Licença, etc. Mais informações sobre os termos no tópico) | ...

Mais informações sobre os termos no tópico.

Código: https://pastebin.com/X5LFtRre

Ele é BEM básico, mas ele cumpre o que ele promete, que é fazer o jogador pular.  :lemonjuice:

Obrigado pela atenção.
^~^) -Rhyan.

Boa haha. Gostei de já ter pensado em bloquear os tiles impassáveis pra evitar bugs. Primeiro código funcionando sem bugs é coisa rara. Posso dar umas sugestões pra tu treinar?  :wow:

1) Inclua um efeito sonoro no pulo.
2) A intenção do pulo, na maioria dos casos, é ultrapassar um obstáculo. Crie uma forma de identificar tiles ou regiões específicas que podem ser saltadas pelo jogador mesmo que o tile seja impassável. Você pode usar tags de terreno ou regiões.

Citação de: Corvo online 11/01/2020 às 07:41
Boa haha. Gostei de já ter pensado em bloquear os tiles impassáveis pra evitar bugs. Primeiro código funcionando sem bugs é coisa rara. Posso dar umas sugestões pra tu treinar?  :wow:

1) Inclua um efeito sonoro no pulo.
2) A intenção do pulo, na maioria dos casos, é ultrapassar um obstáculo. Crie uma forma de identificar tiles ou regiões específicas que podem ser saltadas pelo jogador mesmo que o tile seja impassável. Você pode usar tags de terreno ou regiões.

Que bom que você gostou!  :XD: Irei atualizar e colocar o efeito sonoro e, como você disse, identificação dos tiles para pular obstáculos :D! Obrigado por avaliar, Corvo!
^~^) -Rhyan.

Seloco, primeiro script usando WinAPI pra mim é novidade xd

Achei legal isso de poder usar qualquer tecla, é algo que scripts de pulo não costumam incluir.

Só um puxão de orelha que me lembro de ter dado em outro tópico também: não use variáveis globais a toa )o)

Você fez um módulo e botou uma global $key_jump dentro. Isso só cria a variável global, não é como se o módulo protegesse ela.

O ideal aí seria criar uma constante KEY_JUMP. O nome dela precisa começar com maiúscula, porque é assim que o ruby entende constantes; o resto ser maiúsculo também é opcional, mas é convenção. Feito isso, você consegue acessar esse valor via Teclas::KEY_JUMP.

De resto, parabéns, você está no caminho certo.
~ Masked

Citação de: Brandt online 11/01/2020 às 10:22
Seloco, primeiro script usando WinAPI pra mim é novidade xd

Achei legal isso de poder usar qualquer tecla, é algo que scripts de pulo não costumam incluir.

Só um puxão de orelha que me lembro de ter dado em outro tópico também: não use variáveis globais a toa )o)

Você fez um módulo e botou uma global $key_jump dentro. Isso só cria a variável global, não é como se o módulo protegesse ela.

O ideal aí seria criar uma constante KEY_JUMP. O nome dela precisa começar com maiúscula, porque é assim que o ruby entende constantes; o resto ser maiúsculo também é opcional, mas é convenção. Feito isso, você consegue acessar esse valor via Teclas::KEY_JUMP.

De resto, parabéns, você está no caminho certo.
Opa, obrigado por ter avaliado :)! Quanto a isso, realmente, eu poderia ter evitado usar essa variável global.  :holmes: Obrigado mesmo! Irei arrumar essa questão da variável.
^~^) -Rhyan.

11/01/2020 às 20:07 #5 Última edição: 11/01/2020 às 20:08 por Jorge_Maker
Ora ora, se não é o clássico sistema de pulo. Me lembro de quando o velho Khas fez um tutorial de um simples sistema de pulo para ilustrar uma de suas vídeo-aulas em seu canal e, inspirados pelo tutorial, a negada da época postou um montão de sistemas de pulos lá na antiga Mundo RPG Maker. aheuahehu' Saudades. :feelsbatman:
Quanto ao seu sistema, já que estão lançado desafios, eu vou sugerir que faça a amplitude do pulo ser alterada consoante ao estado do jogador (andando/correndo), também tente adicionar uma sombra embaixo do personagem enquanto ele pula, essa pode ser um pouquinho mais complicada para um início, mas espero que consiga. :lol:
E parabéns. o/
Oxe

Citação de: Jorge_Maker online 11/01/2020 às 20:07
Ora ora, se não é o clássico sistema de pulo. Me lembro de quando o velho Khas fez um tutorial de um simples sistema de pulo para ilustrar uma de suas vídeo-aulas em seu canal e, inspirados pelo tutorial, a negada da época postou um montão de sistemas de pulos lá na antiga Mundo RPG Maker. aheuahehu' Saudades. :feelsbatman:
Quanto ao seu sistema, já que estão lançado desafios, eu vou sugerir que faça a amplitude do pulo ser alterada consoante ao estado do jogador (andando/correndo), também tente adicionar uma sombra embaixo do personagem enquanto ele pula, essa pode ser um pouquinho mais complicada para um início, mas espero que consiga. :lol:
E parabéns. o/

KKkkk, realmente, eu vi bastante sistemas de pulos com códigos práticamente idênticos ao Khas  :holmes:. Nesse script, eu quis não apenas copiar e colar o código dele, mas adicionar coisas novas, como som ao pular, utilizar vkc, etc. Quanto aos desafios, pode ter certeza que eu vou tentar cumpri-los! :wow: (Ah, só para complementar, realmente esse da sombra vai ser difícil mesmo, mas eu vou conseguir). Obrigado por avaliar, bruh  :XD:
^~^) -Rhyan.

Aproveitando as dicas do restante do pessoal, é bem tranquilo adicionar o pulo dos seguidores também, apesar que vai precisar de algumas continhas legais para não fazer eles pularem em lugares esquisitos  :malvado:

@followers.each {|follower| follower.jump(x, y)}


Tente identar corretamente o seu código também, ajuda bastante na manuteção do mesmo, tipo o def update está na coluna da classe dele, não sei se consegue reparar nisso.

Eu fiz um script de pulo uns bons anos atrás haha, caso queira dar uma olhada pode ajudar a te dar umas ideias também:
https://centrorpg.com/index.php?topic=607.0

Citação de: Raizen online 13/01/2020 às 13:42
Aproveitando as dicas do restante do pessoal, é bem tranquilo adicionar o pulo dos seguidores também, apesar que vai precisar de algumas continhas legais para não fazer eles pularem em lugares esquisitos  :malvado:

@followers.each {|follower| follower.jump(x, y)}


Tente identar corretamente o seu código também, ajuda bastante na manuteção do mesmo, tipo o def update está na coluna da classe dele, não sei se consegue reparar nisso.

Eu fiz um script de pulo uns bons anos atrás haha, caso queira dar uma olhada pode ajudar a te dar umas ideias também:
https://centrorpg.com/index.php?topic=607.0

Opa, Raizen! Obrigado por ter comentado :D! Quanto a identação, fiz isso depois de ler seu comentário! Ah, obrigado pela dica, já adicionei o código que mandou, apesar de realmente eu precisar fazer umas contas, afinal, não queremos que os seguidores já fujam da tela do personagem no primeiro pulo que ele dá.  :derp:
^~^) -Rhyan.

Opa, primeiro script sendo ambicioso e.e
O que eu daria em dicas é mais em questão da organização do código. Módulos dentro de classes, embora permitido, é confuso. Outra coisa é em questão de comentários, espaçamento, identação e nomes de variáveis. Khas tem (ou tinha) um péssimo hábito de não colocar espaço onde deveria, colocar nomes sem sentido nas variáveis e não comentar um pingo do código. Comentários em excesso fazem o efeito oposto de ajudar, mas é sempre bom ter um ou dois por aí caso você mesmo vá mexer no código depois de um ou dois meses o/

A propósito, considere escolher uma licença pro seu código: https://choosealicense.com/
Unlicense, zlib, WTFPL, BSL-1.0 ou MIT são boas escolhas. Digo isso porque código sem licença indica que todos os direitos são reservados, o que significa que ninguém pode usar teu código em um jogo seja comercial ou não o/


Citação de: Syureri online 13/01/2020 às 16:07
Opa, primeiro script sendo ambicioso e.e
O que eu daria em dicas é mais em questão da organização do código. Módulos dentro de classes, embora permitido, é confuso. Outra coisa é em questão de comentários, espaçamento, identação e nomes de variáveis. Khas tem (ou tinha) um péssimo hábito de não colocar espaço onde deveria, colocar nomes sem sentido nas variáveis e não comentar um pingo do código. Comentários em excesso fazem o efeito oposto de ajudar, mas é sempre bom ter um ou dois por aí caso você mesmo vá mexer no código depois de um ou dois meses o/

A propósito, considere escolher uma licença pro seu código: https://choosealicense.com/
Unlicense, zlib, WTFPL, BSL-1.0 ou MIT são boas escolhas. Digo isso porque código sem licença indica que todos os direitos são reservados, o que significa que ninguém pode usar teu código em um jogo seja comercial ou não o/

Entendi, não sei muito bem qual escolher... Aviso aqui no tópico quando for resolver. Quanto aos comentários, irei adicioná-los e soltarei uma nova versão do script.
^~^) -Rhyan.

Venho aqui, através de um breve comentário, dizer que eu reabri esse script, ou seja, estarei atualizando ele frequentemente.  :ok:
Qualquer sugestão, deixa aí nas respostas.
^~^) -Rhyan.