Templo RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Fetelk13

Fetelk13
Membro Honorário I
Membro Honorário I
Finalmente começaremos a falar sobre a Classe MAIS importante do RGSS. Mas porque a mais importante? porque as Scenes são responsáveis por dar vida aos códigos. Os objetos principais de um game são:

- Tela de Título
- Mapas
- Menus
- Batalhas
- Tela de Game Over

Observe a imagem abaixo:

Lição 8.0 - Scenes - A Estrutura Image027

Mas como assim, Dar vida??
As Scenes são classes pré-definidas onde a sua composição torna possível a criação de movimento no mapa por exemplo, a exibição do menu quando apertamos uma tecla, quando entramos em batalha, e por ae vai. Primeiramente vamos entender como funciona uma Scene, para depois exeplicá-la com mais ênfase. Sua estrutura é a seguinte:


#definimos a classe:
class Scene_nomedascene
#definimos o procedimento principal
def main
#delaramos os objetos que serão usados na scene
@var = objeto.new
@var2 = objeto2.new
#Aqui, iniciamos a estrutura de "funcionamento"
#da Scene, iniciando a transição dos gráficos
Graphics.transition
#A partir daqui, tudo que acontece dentro do
#Scene vai estar nesta parte, iniciamos um loop
loop do
# Atualizamos a tela de jogo
Graphics.update
# Atualizar a entrada de teclas
Input.update
#Aqui colocamos TUDO que quisermos que
#Aconteça no Scene

# Abortar o loop caso a scene tenha sido alterada
if $scene != self
break
end
end
#Congelamos o Scene, para iniciar
#uma nova transição (de uma para a outra)
Graphics.freeze
#E destruímos todos os objetos que foram
#declarados
@var.dispose
@var2.dispose
end
end

Vejamos de uma forma mais limpa:

Código:
class Scene_nomedascene
  def main
    @var = objeto.new
    @var2 = objeto2.new
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      #<AQUI>
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @var.dispose
    @var2.dispose
  end
end

Observe que, dentro do loop, estamos atualizando os gráficos e a entrada de teclas. É exatamente aqui que fazemos as coisas acontecerem. Tudo que estiver dentro deste loop ira acotecer, de acordo com a programação, como se fosse um "filme". Observe também que, se houver uma mudança de de Scene(if $scene != self - self ->Ela mesma) o loop é quebrado(break) e tudo que estiver abaixo ocorre, como a parada nos gráficos e a destruição dos objetos que foram criados.

Como já aprendemos que o RGSS é uma POO, para facilitar a vida não vamos encher a estrutura loop de linhas, vamos direcionar para um procedimento, no caso, o procedimento mais comum é o update.

No lugar do nosso # vamos por o update e, logo abaixo do end do procedimento main vamos criar o procedimento update.

Código:
class Scene_nomedascene
  def main
    @var = objeto.new
    @var2 = objeto2.new
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @var.dispose
    @var2.dispose
  end
  def update
  #<coloque o que quiser aqui>
  end
end

Agora, tudo que for acontecer em nossa Scene partirá do procedimento update. Ele foi intencionalmente chamado assim por referência, para facilitar saber o que cada procedimento faz. Como qualquer classe, As classes Scene podem ter quantos procedimentos forem necessários, e possuir o procedimento initialize, que por padrão, é sempre o primeiro procedimento da classe a ser executado(salvo a primeira Scene do game, que por padrão a Classe Main chama o procedimento $scene.main).

Se você der uma olhada nas Scenes padrão do RGSS, verá que muitas delas como a Scene_Menu, possuem o procedimento initialize.
Lá em cima eu disse que podemos declarar objetos, mas que objetos??

Na maioria das Scenes, são declaras as Janelas, As imagens(em forma de Sprites ou Planes) e as Vars.
Tudo que você vê em funcionamento num game é possível por causa desse loop do, que se você leu a aula passada, sabe que significa "faça enquanto". Enquanto está neste Scene, enquanto está dentro do loop, tudo acontece, como o movimento dos eventos no mapa, o movimento do fog, o cursor que muda de cor no menu, a própria movimentação do cursor, e infinitas outras coisas de nossos games, como as batalhas, a seleção de heróis e monstros, o uso de skills com animações.

Este é apenas o início do início deste assunto. Na próxima aula, iniciaremos a contrução de uma Scene, para que você entenda melhor o seu funcionamento.

Até lá.

http://elementosrpgmakerbr.forumeiros.com/forum

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos