Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Ainda temos gente aqui?
Aula 7: Nossa 1ª Scene!  EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
Aula 7: Nossa 1ª Scene!  EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
Aula 7: Nossa 1ª Scene!  EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
Aula 7: Nossa 1ª Scene!  EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
Aula 7: Nossa 1ª Scene!  EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Aula 7: Nossa 1ª Scene!  EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
Aula 7: Nossa 1ª Scene!  EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
Aula 7: Nossa 1ª Scene!  EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
Aula 7: Nossa 1ª Scene!  EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
Aula 7: Nossa 1ª Scene!  EmptyQui 21 maio 2015, 20:28 por Wismael


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]

1Aula 7: Nossa 1ª Scene!  Empty Aula 7: Nossa 1ª Scene! Sáb 13 Out 2012, 19:38

Halt

Halt
Administrador
Administrador
[Autor: Anderson Porto]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Começando
Para iniciar uma scene, 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:

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]initialize
Método de inicialização, usamos geralmente para inicializar atributos e coletar parâmetros do mundo externo (outros scripts).

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]main
Método principal, onde estabelecemos o conteúdo da scene e o seu loop principal.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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)

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]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.

https://arenarpgmaker.forumeiros.com

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