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

Aulas de Ruby

Iniciado por Sotelie, 24/02/2017 às 02:11

Exatamente xD e acabei esquecendo aquilo por desatenção mesmo, perdoem ;-;

Aulas 16 e 17 lançadas. Fico feliz em dizer que finalizamos as aulas básicas.

 :clap: :clap: :clap:
Quer dizer que, quando há algum :comando se trata de um hash? Tipo, naquelas condições de tecla pressionada e etc? E sobre o eval, seria possível transformar o código em outro valor (string, número)? Por exemplo: Em determinado sistema, o jogador pode criar o calculo de dano in game. O programador se esquece de salvar esses comandos em outro lugar, então seria possível reverter o código para mostrar a fórmula em uma janela, ainda in game?

17/03/2017 às 17:05 #63 Última edição: 17/03/2017 às 17:06 por Alisson
Muita das vezes sim :) Principalmente aqueles que existem nas partes configuráveis dos scripts.
E seria possível sim. Na verdade, para converter os valores de uma variável, é bem simples, seguindo o modelo abaixo:
"1002".to_i # Converte a string em um número inteiro.
eval("0x12") # Converte o número em hexadecimal em um verdadeiro código (o sistema converte números hexadecimais em decimais).

2017.to_s # Converte o número em uma string.

10.to_f # Converte o número em números com caracteres decimais (no caso, 10 ficaria 10.0)

"hey_there".to_sym # Converte a string em um símbolo (:hey_there)


Pegamos uma fórmula de ataque simples, por exemplo:
a.atk * 4 - b.def * 2

No caso, quando ele usa o eval, "a" é a classe do atacante, então no código deve existir alguma variável chamada "a" que segura a classe do atacante.
Tendo esse conhecimento em mente, você pode fazer fórmulas bem elaboradas, como:
if a.id == 1; 150; else; 50; end

A fórmula acima checa se o número do atacante no database é 1. Se for, o dano será 150, do contrário será 50.



 Nossa, muito boa suas Aulas, [user]Alisson[/user]! Realmente elas são muito... perfeitas  :XD: Gosto bastante de aulas curtas mas que ensinam o necessário (sem enrrolação).
Essas aulas me tiraram muitas dúvidas que pairavam em minha mente.

Aguardando as próximas aulas :D
O livro traz a vantagem de a gente poder estar só e ao mesmo tempo acompanhado.

------------


Opa, fico feliz em saber que estão ajudando :D Estou preparando as aulas intermediárias já, só não postei até agora pois minha internet me odeia ;-;

aqui seria um topco bom pra se aprender sobre ruby do zero? pq tipo se me perguntar o q é ruby nao vou saber responder ._.
aprovado pelo ministerio dos loucos anonimos

Sim, as aulas focam em ensinar desde o zero, para aqueles que nunca tiveram contato com programação.
Só é requerido ter conhecimento sobre a engine, do contrário elas podem se tornar um pouco complicadas.

Amanhã 10/04 começaremos as aulas intermediárias. Espero que tenham aprendido tudo do básico, pois vamos colocar o que aprendemos em prática agora.

Otimo, ja sinto a animação fluindo nas veias :) 
aprovado pelo ministerio dos loucos anonimos

12/04/2017 às 16:56 #69 Última edição: 12/04/2017 às 16:57 por Alisson
Aula número 18 lançada!
Abaixo seguem algumas das propriedades da classe Sprite.
sprite.x = 10                # A coordenada horizontal do sprite.
sprite.y = 10                # A coordenada vertical do sprite.
sprite.z = 10                # Indica o quão próximo da tela e o quão acima das outras o sprite estará. Em engines 3d, o z é apenas mais uma coordenada.
sprite.ox = 10               # O ponto de origem horizontal do sprite. Por padrão, o ponto de origem é no canto superior esquerdo. 
sprite.oy = 10               # O ponto de origem vertical do sprite. Mesma coisa do ox.
sprite.zoom_x = 1.0          # O zoom horizontal do sprite. 1.0 é 100% do zoom, enquanto 2.0 é 2x o tamanho original.
sprite.zoom_y = 1.0          # O zoom vertical do sprite. Mesmo tipo do zoom_x.
sprite.angle = 0             # O ângulo de rotação do sprite. De 0 a 360.
sprite.opacity = 255         # A opacidade do sprite. Um valor de 0 a 255.

Opa, quase me escapa o/
Tipo, fuçando aqui nos scripts não encontrei, mas caso seja burrice minha, avise. Qual é a prioridade padrão de cada elemento? Por exemplo, na tela de título temos:

Imagem de Fundo<Windowskin<Comandos<Imagens de Título e etc

Uma vez tive um grande problema com o script de iluminação do [user]Khas[/user], porque a sombra dele - naquela demo - se sobrepunha a janelinha de opções (Sim, Não, essas coisas), mas não a de mensagens normais. Foi assim que conheci esse negócio de prioridades. E outra coisa: mover imagens é coisa pra aulas futuras? '-'

A imagem da tela de título possui um z de 100, e, como toda imagem que você cria tem um z de 0 por padrão, ela consequentemente fica atrás quando você cria. Ele define o z na linha 52 do script padrão da Scene_Title.

E se preocupa não, ainda preciso explicar sobre as scenes para que possamos brincar um pouco mais com os sprites :D Tem bastante coisa que podemos fazer após eu explicar sobre as scenes.

Outra coisa, se você criar dois sprites, o sprite que você cria por último fica acima do sprite que criou primeiro.

 :<3: Haaa, quero muito fazer algo usando essa aula, como sempre e fácil de entender com você ensinado.
:T.T: Vou sentir falta da musiquinha e da outra garota.

Mantenha esse ânimo e você estará fazendo vários scripts, meu caro.
e é a mesma garota, é apenas uma transformação, haha

Aula 19 lançada.

Recomendo que vejam o conteúdo a seguir após verem a aula.




Inicialização da classe RPG::BGM
RPG::BGM.new("Nome", Volume, Pitch, Posição)
"Nome" - Obviamente o nome da música. Originalmente deve se encontrar na pasta Audio/BGM.
Volume - De 0 a 100.
Pitch - O tom da música. Pode usar qualquer valor, até mesmo zero.
Posição - Desnecessário o uso. Deve ser um número de 9 dígitos, contendo a posição de onde o áudio deve ser reproduzido. Funciona apenas com arquivos OGG e WAV.


Métodos de classe:
RPG::BGM.last - Obtém o áudio que está sendo tocado atualmente. Também obtém a posição do playback.
RPG::BGM.stop - Faz o áudio atual parar.
RPG::BGM.fade(tempo) - Faz um fadeout no áudio em milissegundos.
.play(posição) - Reproduz o áudio. Não é necessário definir uma posição, a menos que você queira.
.replay - Reproduz a BGM que foi obtida em RPG::BGM.last.


Os mesmos métodos de RPG::BGM são válidos para RPG::BGS.

Inicialização da classe RPG::ME
RPG::ME.new("Nome", Volume, Pitch)


Métodos de classe:
RPG::ME.stop - Faz a ME atual parar.
RPG::ME.fade(tempo) - Faz um fadeout no ME que está sendo reproduzido atualmente em milissegundos.
.play - Reproduz um ME.


Os mesmos métodos de RPG::ME são válidos para RPG::SE, exceto fade.




Métodos do módulo Input:
Input.trigger?(Símbolo) - Indica se o botão Símbolo foi pressionado uma vez.
Input.press?(Símbolo) - Indica se o botão Símbolo está sendo pressionado.
Input.repeat?(Símbolo) - Indica se o botão Símbolo está sendo pressionado uma vez, repetidamente (Apenas testando vocês vão entender esse, creio eu).

Símbolo pode ser:
  :RIGHT, :LEFT, :UP, :DOWN, :A, :B, :C, :X, :Y, :L, :R, :SHIFT, :CTRL, :ALT, :F5, :F6, :F7, :F8 e :F9.