Turbo Makers

O mais novo fórum relacionado a RPG Maker.
 
InícioInício  PortalPortal  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  MembrosMembros  GruposGrupos  Conectar-seConectar-se  

Compartilhe | 
 

 {Aula Express} A Estrutura basika de uma scene (no caso[...]

Ir em baixo 
AutorMensagem
Crhonos
Ocasional
Ocasional
avatar

Mensagens : 21
Data de inscrição : 26/08/2007

MensagemAssunto: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 2:17 am

{Aula Express} A Estrutura basika de uma scene (no caso scene menu [eh uq eu mais gosto])

Antes de Tudo : Porque {Aula Express}? Porque eu num estou ensinando do zero e sim mostrando o funcionamento de uma scene pra vc sair por ai se aventurando nos scripts, em vez de come?ar com akele negocio chato, de introdução, começo e etc
por isso chamei de {Aula Express}

Primeiro
Abra o editor de scripts, na aba da esquerda escolha o "Scene Menu"
na aba da direita aparecera um texto e que basikament se vc num saiba rgsss num vai entender nd
mas isso eh o de menos....
Linha 7:
Código:
class Scene_Menu
= "class" signifika que esta eh um inicio de uma classe, que guarda muitos objetos:variaveis,constantes,
etc, num vou me aprofundar nisto pois se num passaria um dia inteiro explicando, mas UMA CLASSE NUM É UM OBJETO..
"scene Menu" eh o nome da classe, ela eh + - importante, pois se vc modifikar o nome dela, outras classses que a reconhece por este nome, vão parar de reconhece-la, isso sera um caos, por exemplo, imagine se acontece-se uma greve de lixeiros,e eles sumissem, em duas semanas a cidade seria um caos de lixo...isso aconteceria se os lixieros desaparecessem, com a classe eh a mesma coisa, se as outras classes num acharem esta, tudo virar um caos, e tudo que usava esta classe, iria dar erro, assim o Rmxp num funfaria, ia simplesmente dar pau...


Linha 23:
Código:
def main
Def = um metodo, digamos que vc diga pra iniciar o Def Mamae atravez, da avaliação de uma variavel, tudo que esta em def mamae ira acontecer,soh....
Main = eh o def : Main
como se fosse o def 1
def main é meio que central por isso ocorre mesmo se não for chamado...


Linha 25 a 30

Código:
   s1 = $data_system.words.item
   s2 = $data_system.words.skill
   s3 = $data_system.words.equip
   s4 = "Status"
   s5 = "Salvar"
   s6 = "Fim de Jogo"

s1, s2, s3, s4, s5, s6,s etc...
= são variaveis = signifika que o s1 eh a mesma coisa que $data_system.words.item por exemplo
$data_system.words.item eh,outra variavel,porem unida em um metodo, $data_system pode ser uma var ou uma classe, mas num convem a aula, words = palavras,signifika que sera interpretado comu uma palavra, tbm num convem a aula,enfim,este conjunto forma um comando que TALVEZ eu explique + pra frente....
Apos explikar,muita coisa sobre o menu vou explikar como modifika-lo, num adinta saber modifikar,sem entender oque esta modifikando, assim como num adinta atirar sem ter treinado a pontaria

Pois entaum

Linha 31 e 32

Código:
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
   @command_window.index = @menu_index

Na linha 31 declaramos a Var local @command_window, como a classe (janela) Window_Command e definimos as variaveis de "nomes" na janela, como esta eh uma janela de opções e é padrão do rmxp
ela ja vem com o "re-conhecimento" destas vars, o 160 e a largura da janela

linha 32
Declaramos o inicio da Var local @command_window, com o .index, neste caso o index
e igual a var local @menu_index

das linhas 33 a 45 são definiçoes basikas padroes do rmxp, para mexer via eventos, como proibir o save e etc

das linhas 46 a 62 são criadas as janelas de tempo de jogo, marca passo e menu de status
elas são declaradas assim como a var @command_window é = a classe Window_Command

das linhas 64 a 79
a Classe eh preparada para transição de SCENE(a classe Estrutura onde tudo acontece)

das linhas 80 a 85 as janelas são preparadas para desaparecer caso a scene mude, por isso sempre que criar uma nova janela voce tem que por a var local, + procedimento .dispose
normalment o dispose eu sempre esqueço o.O
assim:

Código:
# Exibição das janelas
   @command_window.dispose
   @playtime_window.dispose
   @steps_window.dispose

e se eu fosse adicionar uma nova janela fikaria assim

Código:
# Exibição das janelas
   @command_window.dispose
   @playtime_window.dispose
   @steps_window.dispose
   @minha_nova_janela.dispose
Lembre-se, para dar dispose em algo, esta coisa tem de existir....

das linhas 91 a 108
as janelas que necessitam ser atualizadas tem que estar aki
eh a mesma coisa que o dispose, eh necessario, digamos, vc faz uma janela que mostra os status de
um char, se num for adicionada ao def update como as outras vars, seu char sempre vai aparecer com o hp maximo, mas vc quer que ele apareça com o hp atual dele

sera assim:

Código:
def update
   # Atualizar janelas
   @command_window.update
   @playtime_window.update
   @steps_window.update #[...]
e fikaria assim se vc adicionasse uma nova

Código:
def update
   # Atualizar janelas
   @command_window.update
   @playtime_window.update
   @steps_window.update
   @minha_nova_janela.update
pronto


agora chegamos a parte legal/chata

da linha 114 a 122

estara assim:

Código:
  def update_command
   # Se o botão B for pressionado
   if Input.trigger?(Input::B)
     # Reproduzir SE de cancelamento
     $game_system.se_play($data_system.cancel_se)
     # Alternar para a tela do mapa
     $scene = Scene_Map.new
     return
   end
def update_command e como o def main,e axem do mesmo jeito, estão sempre ativos


if Input.trigger?(Input::B)
aki dizemos se o bot?o B(x do teclado) for presionado, intaum saimos do menu e vamos ao mapa do jogo
if(se) input.trigger, inputr(clikar) triger(tempo,mas deixe de lado)?(input::B)(clikar::B)
entende?

da linha 123 a 131 tem o mesmo funcionamento o de cima

Código:
# Se o botão C for pressionado
   if Input.trigger?(Input::C)
     # Se o comando for outro senão Salvar, Fim de Jogo e o numero de Heróis no
     # Grupo for 0
     if $game_party.actors.size == 0 and @command_window.index < 4
      # Reproduzir SE de erro
      $game_system.se_play($data_system.buzzer_se)
      return
     end
Porem trabalha com restriçoes


na linha 133

Código:
# Ramificação por posição do cursor na janela de comandos
     case @command_window.index
Case e como se fosse "olhe" o @command_window.index

assim voce esta olhando o valor do @comand_window

Linha 134 a 179

Código:
     when 0  # Itens
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Alternar para a tela de Itens
      $scene = Scene_Item.new
     when 1  # Habilidades
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Ativar o status da janela
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
     when 2  # Equipamentos
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Ativar o status da janela
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
     when 3  # Status
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Ativar o status da janela
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
     when 4  # Salvar
      # Se Salvar for proibido
      if $game_system.save_disabled
        # Reproduzir SE de erro
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Alternar para a tela de save
      $scene = Scene_Save.new
     when 5  # Fim de Jogo
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Alternar para a tela de Fim de Jogo
      $scene = Scene_End.new
     end
     return
   end
  end

onde when 0 eh como se fosse, numero 1
lembre-se, o numero 0 eh = o s1 definido lah em cima
e entre um when e outro estão os comandos, digamos se o @comand_window.index for 0(s1)
acontece a "ida" ao scene item(janela de itens)

Código:
      $game_system.se_play($data_system.decision_se)
      # Alternar para a tela de Itens
      $scene = Scene_Item.new

enquanto oque estiver para baixo são definiçoes da window status

agora LEMBRE-SE se o seu RPGMaker for o xp BR (pt) na nossa lingua :blink:
Sempre leia os comentarios, aprendi muito com eles,
ou seja os comentarios são muito importantes
sem eles vc num vai longe
agora tendo minha aula em mente, se quiser leia mais de uma vez pra fixar, e/ou entender,
feito isso prepare-se para minha segunda aula, nesta explikei a classe scene menu e seu,
funcionamento, na proxima vou ensinar a faser op?oes janelas e etc
ma suma coisa por aula, sempre lembre-se disto
e eh soh!...!



Outra coisa eh que eu fiz essa aula meio "generalizada" para iniciantes em rgss possam aprender
pois se eu colokasse liguagem diferentes falando como devia falar ningen ia entender porra nenhuma...


Última edição por em Qui Ago 30, 2007 3:07 am, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
FantasyX2
Admistrador
Admistrador
avatar

Mensagens : 112
Data de inscrição : 19/08/2007
Idade : 27

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 2:22 am

Muito bom , lembrando que algumas scenes se usa update tbm exemplo

Código:
minha_scene.update

E dispose seria como parar oque você fez depois do eventos

_________________


Voltar ao Topo Ir em baixo
Ver perfil do usuário
Crhonos
Ocasional
Ocasional
avatar

Mensagens : 21
Data de inscrição : 26/08/2007

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 2:58 am

Bem eu num preciso por minha_scene.update se eu ja tiver declarado ela numa var local ou seja se @joao = minha_scene.update intaum eu dou upadate no joao
mas no caso do que vc me disse, sempre que voce usar uma classe diretamente como var intaum se poe um "$" antes do nome ou seja
$minha_scene.update

e dispose eh genalizadamente "apagar", na transição vc congela os graficos e apaga, se vc num apagar u bagulho vai fikar lah ateh sumir(no main vc pode alterar isso, para nunca sumir)

e eh soh

eu ja programo mt bem rgss,(embora ja fassa um tempo que num mexo e esteja meio enferrujado...)
e outra coisa

o VLAD eh u Lu_rike?Heheheheheh Lu_Rike me pedia ajuda de mais...
Voltar ao Topo Ir em baixo
Ver perfil do usuário
FantasyX2
Admistrador
Admistrador
avatar

Mensagens : 112
Data de inscrição : 19/08/2007
Idade : 27

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 3:42 am

Oo ele falo que aprendeu sozinho mais tudo bem, ah ele e sim e me ensinou o RGSS

_________________


Voltar ao Topo Ir em baixo
Ver perfil do usuário
Crhonos
Ocasional
Ocasional
avatar

Mensagens : 21
Data de inscrição : 26/08/2007

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 4:11 am

Ele pode ter aprendido sozinhu, mas me pedia ajuda toda hora...
mas diz ai, eh sempre baum ter alguem pra por a mão na tua cabeça huahuasuhashu


e pelo que eu sabia, ele num fazia scripts, apenas modifikava os ja feitos Oo
e tipo, ele tbm conseguia adaptar uns scripts que eram incompativeis uns com os outros...

eu particularmente num tenhu sako pra fikar mechendo em coisas que os outros fizeram, primeiro tu tem que entender o jeito que ele fez, depois tentar mecher, e por ultimo tentar corrigir us bugs feitos por vc mesmo...
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Keko
Moderadores
Moderadores
avatar

Mensagens : 154
Data de inscrição : 26/08/2007
Idade : 26
Localização : Aqui mesmo

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 12:27 pm

opa otimo tuto vo ver se aprendo depois da escola( to de saida, sao 6:27 da manha xD)

_________________
Participem da Comunidade Aula Maker no Orkut:
http://www.orkut.com/Community.aspx?cmm=37878317

Projeto mais recente:
http://www.jogosrpg.com.br/forum/index.php?topic=10905.msg86354#msg86354

Minha equipe de criação de jogos:
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://www.orkut.com
FantasyX2
Admistrador
Admistrador
avatar

Mensagens : 112
Data de inscrição : 19/08/2007
Idade : 27

MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   Qui Ago 30, 2007 6:29 pm

Então uma exemplo é um menu você cham ele depois usa

Código:
minha_scene.dispose

_________________


Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: {Aula Express} A Estrutura basika de uma scene (no caso[...]   

Voltar ao Topo Ir em baixo
 
{Aula Express} A Estrutura basika de uma scene (no caso[...]
Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Expressões matemáticas, funções e operadores
» Game Maker - Aula 9 - Instrução While
» #DGM Aula 03 - Sprites
» Guitar Pro - Aula 2
» Tutorial - Online -Aula 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Turbo Makers :: RPG Maker XP :: Scripts RGSS-
Ir para: