Aula 7: Nossa 1ª Scene!

Ir em baixo

Aula 7: Nossa 1ª Scene!

Mensagem por $ectumbot$ em Seg Maio 30, 2011 4:47 pm


Nossa 1ª Scene!



» Começando:
Para iniciar uma scnene, não podemos utilizar métodos quaiquer. Em uma scene e em vários scripts utilizamos métodos especiais chamados de construtores, são eles:

» initialize:
Método de inicialização, usamos geralmente para inicializar atributos e coletar parâmetros do mundo externo (outros scripts).

» main:
Método principal, onde estabelecemos o conteúdo da scene e o seu loop principal.

» O loop:
Na verdade essa aula seria sobre loops, porém deixaremos para a próxima, o que nos interessa saber é que um loop é um ciclo, ele tem a mesma funcionalidade do comando ciclo dos eventos.
Loop é um comando que executa continuamente um conjunto de comandos que estabelecemos até que utilizemos um comando para parar.


» Exemplo:
Código:
l = 5
loop do
  l += 5
  if l > 2000
    break
  end
end
Nesse exemplo, definimos que l vale 5 e depois entramos em loop, nele fomos somando 5 até chegar a 2000, ai finalizo o loop com o comando break

» return e break:
Eu já havia falado do comando return, venho agora trazer o comando break, os dois tem quase a mesma função, vamos as diferenças.
Código:
var = rand(4)
if var == 3
  var += 3
  return
else
  break
end
var += 10
Nesse código, definimos que var será um número qualquer, se var assumir o valor 3 ela soma mais 3 e ai aparece o comando return, com esse comando o script encerra o método e vai para o último end do próprio (não do script, do método) assim não soma 10, porém se var não assumir o valor 3 aparece o comando break, esse comando leva a execução para após o 1º end que encontrar, nesse caso, irá somar 10. (claro que mesmo sem o break ele iria somar, mas minha criatividade pra exemplos está baixa)



» Botando em prática:
Vamos criar hoje uma scene simples, será uma tela de apresentação, para isso crie um novo espaço acima do main e coloque a nossa classe
class Scene_Presets
Mude o nome como quiser, agora vamos ao primeiro método, o nosso construtor, como não utilizaremos parametros, até por que não vimos isso ainda, vamos assim para o método main, assim:
def main
Agora entramos em um problema, como nosso script será iniciado bem no início do programa, temos que inicializar o sistema, com o tempo veremos mais detalhes a respeito agora nos basta:
$data_system = load_data("Data/System.rxdata") #vai carregar o sistema da pasta data
$game_system = Game_System.new #estabelecemos o objeto game system, inicializando-o (ele tem um construtor como o nosso)
Feito isso, precisamos criar o conteúdo do nosso script, vamos usar então uma imagem já que ainda não sabemos fazer janelas. Vamos chamar nossa imagem de @logo, assim:
@logo = Sprite.new #dizemos que #logo é uma sprite(imagem)
@logo.bitmap = RPG::Cache.title("Imagem.png") #aqui dizemos qual imagem iremos utilizar no nosso script, como deixei a imagem ficará na pasta title com o nome Imagem.png.
Antes de prosseguir, crie uma imagem para ser o logo, fáça-a com 640x480 píxels (tamanho da tela) e insira-a dentro da pasta titles!
@logo.opacity = 0 #estabelecemos uma opacidade para a imagem
@opacity = 0 #estabelecemos uma variável para nosso efeito de fade
Graphics.transition #estabelece que os gráficos irão se alterar
Agora criamos nosso loop
loop do
Graphics.update #serve para atualizar a tela
update # método update que faremos a seguir
if $scene != self #condição, se a scene for diferente da scene que estamos trabalhando
break #termina a execução do loop
end
end
terminado o loop, finalize o método.




»Vamos agora fazer nosso método de atualização, como vimos o nosso loop, irá executar continuamente um método chamado update, temos agora que definir o que nosso método fará cada vez que for executado.
def update
@opacity += 1
@logo.opacity = @opacicy
if @opacity > 255
$scene = Scene_Title.new
end
end


» Explicando...:
Precisamos definir o que será feito cada vez que o update for executado, nossa tela de logotipo terá o efeito de fade, ou seja, começa transparente e vai aparecendo, é por isso que estabeleci uma variável, a que chamei de @opacity, cada vez que eu executar a atualização, a minha variável aumentará em 1 o seu valor, após isso defino que a opacidade do objeto @logo, terá o valor da variável @opacity, para finalizar crio uma condição, quando a variável chegar em 255, abrirá a tela de título!!
Para usar a scene, vá no main e mude o Scene_Title.new por Scene_Presents.new, você não precisa chamar nenhum método pois usamos um construtor.





Todos os créditos e agradecimentos a Anderson Porto pelo lindo tutorial!
avatar
$ectumbot$
Membro
Membro

Engine : RPG Maker VX
Mensagens : 85
Localização : Em frente ao PC!

Ver perfil do usuário http://galaxiarpgmaker.123.st

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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