The RPG Maker Resource Kit

RMRK RPG Maker Creation => Requests => Script Request => Topic started by: gerecit on January 14, 2011, 02:32:48 AM

Title: New Main Menu
Post by: gerecit on January 14, 2011, 02:32:48 AM
Hey! I'm a new user here in Rmrk.net, i'm not an english speaker... sory if you dont understand my words.

I have this script, is a main menu whit images...


[spoiler]
#################################################
# Scene Title Screen Miria V1.0                                    #
##################################################
# By Moghunter
# http://www.atelier-rgss.com
##################################################
# Tela de titulo animada.
# Crie uma pasta com o nome deTitle dentro da pasta
# Graphics e coloque todas as imagens dentro dela.
# São necessárias as seguintes imagens.
#
# Title           #Imagem que contem o texto do titulo
# Transition    #Imagem da transição de tela
# Plane1        #Imagem da camada 1
# Plane2        #Imagem da camada 2
# Plane3        #Imagem da camada 3
# Com_01       #Imagem do menu seleção NEW GAME
# Com_02       #Imagem do menu seleção CONTINUE
# Com_03       #Imagem do menu seleção EXIT
#
#-------------------------------------------------
#############
#   CONFIG    #
#############
module MOG_VX01
#Ativar tela cheia.    (true = Ativar ou false = Desativar)
FULL_SCREEN = false
# Tempo de transição.
TT =60
#Ativar movimento de Onda no texto do titulo.
# (true = Ativar ou false = Desativar)
TWAVE = false
#Opacidade da imagem camada 1.
TPLANE1_OPA = 255
#Opacidade da imagem camada 2.
TPLANE2_OPA = 200
#Opacidade da imagem camada 3
TPLANE3_OPA = 170
# Velocidade de movimento da camada 1 na horizontal.
TPLANE1_X = 0
# Velocidade de movimento da camada 1 na vertical.
TPLANE1_Y = 0
# Velocidade de movimento da camada 2 na horizontal.
TPLANE2_X = 1
# Velocidade de movimento da camada 2 na vertical.
TPLANE2_Y = 0
# Velocidade de movimento da camada 2 na horizontal.
TPLANE3_X = 0
# Velocidade de movimento da camada 2 na vertical.
TPLANE3_Y = 0
end
#-------------------------------------------------
$mogscript = {} if $mogscript == nil
$mogscript["title_miria"] = true
#-------------------------------------------------
###############
# Module Cache #
###############
module Cache
  def self.title(filename)
    load_bitmap("Graphics/Title/", filename)
  end
end
#############
# Scene_Title #
#############
$full_screen = 0
class Scene_Title
include  MOG_VX01
    def main
    if $BTEST                       
      battle_test                     
    return
    end     
    $full_screen += 1
    if MOG_VX01::FULL_SCREEN == true and $full_screen == 1
    $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ' '
    $showm.call(18,0,0,0)
    $showm.call(13,0,0,0)
    $showm.call(13,0,2,0)
    $showm.call(18,0,2,0)
    end     
    start                         
    perform_transition         
    post_start                   
    Input.update               
    loop do
      Graphics.update           
      Input.update               
      update                     
      break if $scene != self   
    end
    Graphics.update
    pre_terminate                 
    Graphics.freeze               
    terminate                     
  end
  def start
    load_database                   
    create_game_objects           
    check_continue                   
    create_title_graphic             
    create_command_window         
    play_title_music                 
  end
  def perform_transition
    Graphics.transition(TT , "Graphics/Title/Transition")
  end
  def post_start
    open_command_window
  end
  def pre_terminate
    close_command_window
  end
  def terminate
    dispose_command_window
    snapshot_for_background
    dispose_title_graphic
  end
  def update
    @command_window.update
     case @command_window.index
     when 0
     @com.bitmap = Cache.title("Com_01")
     when 1
     @com.bitmap = Cache.title("Com_02")   
     when 2
     @com.bitmap = Cache.title("Com_03")
   end       
    @sprite_title.opacity += 2
    @com.opacity += 2 if @sprite_title.opacity > 150
    @sprite.ox += TPLANE1_X
    @sprite.oy += TPLANE1_Y
    @sprite2.ox += TPLANE2_X
    @sprite2.oy += TPLANE2_Y
    @sprite3.ox += TPLANE3_X
    @sprite3.oy += TPLANE3_Y
    @sprite_title.update if TWAVE == true
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0 
        command_new_game
      when 1   
        command_continue
      when 2   
        command_shutdown
      end
    end
  end
  def update_slide
    @sprite.ox += TPLANE1_X
    @sprite.oy += TPLANE1_Y
    @sprite2.ox += TPLANE2_X
    @sprite2.oy += TPLANE2_Y
    @sprite3.ox += TPLANE3_X
    @sprite3.oy += TPLANE3_Y
    @sprite_title.update if TWAVE == true   
  end
  def load_database
    $data_actors        = load_data("Data/Actors.rvdata")
    $data_classes       = load_data("Data/Classes.rvdata")
    $data_skills        = load_data("Data/Skills.rvdata")
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
    $data_enemies       = load_data("Data/Enemies.rvdata")
    $data_troops        = load_data("Data/Troops.rvdata")
    $data_states        = load_data("Data/States.rvdata")
    $data_animations    = load_data("Data/Animations.rvdata")
    $data_common_events = load_data("Data/CommonEvents.rvdata")
    $data_system        = load_data("Data/System.rvdata")
    $data_areas         = load_data("Data/Areas.rvdata")
  end
  def load_bt_database
    $data_actors        = load_data("Data/BT_Actors.rvdata")
    $data_classes       = load_data("Data/BT_Classes.rvdata")
    $data_skills        = load_data("Data/BT_Skills.rvdata")
    $data_items         = load_data("Data/BT_Items.rvdata")
    $data_weapons       = load_data("Data/BT_Weapons.rvdata")
    $data_armors        = load_data("Data/BT_Armors.rvdata")
    $data_enemies       = load_data("Data/BT_Enemies.rvdata")
    $data_troops        = load_data("Data/BT_Troops.rvdata")
    $data_states        = load_data("Data/BT_States.rvdata")
    $data_animations    = load_data("Data/BT_Animations.rvdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
    $data_system        = load_data("Data/BT_System.rvdata")
  end
  def create_game_objects
    $game_temp          = Game_Temp.new
    $game_message       = Game_Message.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
  end
  def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  end
  def create_title_graphic
    @sprite_title = Sprite.new   
    @sprite_title.bitmap = Cache.title("Title") 
    @sprite_title.opacity = 0
    @com = Sprite.new
    @com.bitmap = Cache.title("Com_01") 
    @com.opacity = 0
    @sprite = Plane.new   
    @sprite.bitmap = Cache.title("Plane1")
    @sprite2 = Plane.new
    @sprite2.bitmap = Cache.title("Plane2")
    @sprite3 = Plane.new   
    @sprite3.bitmap = Cache.title("Plane3")
    @sprite.opacity = TPLANE1_OPA
    @sprite2.opacity = TPLANE2_OPA   
    @sprite3.opacity = TPLANE3_OPA   
    @sprite.z  = 1
    @sprite2.z = 2
    @sprite3.z = 3
    @com.z = 4
    @sprite_title.z = 5   
  if TWAVE == true
    @sprite_title.wave_amp = 8
    @sprite_title.wave_length = 240
    @sprite_title.wave_speed = 320
  end
    end
  def dispose_title_graphic
    @sprite.bitmap.dispose
    @sprite2.bitmap.dispose
    @sprite3.bitmap.dispose   
    @com.bitmap.dispose   
    @sprite_title.bitmap.dispose
    @sprite.dispose
    @sprite2.dispose
    @sprite3.dispose
    @com.dispose     
    @sprite_title.dispose
  end
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.opacity = 0
    @command_window.contents_opacity = 0
    if @continue_enabled                 
      @command_window.index = 1             
    else                               
      @command_window.draw_item(1, false)   
    end
  end
  def title_fade
   if TWAVE == true   
    @sprite_title.wave_amp = 34
    @sprite_title.wave_length =120
    @sprite_title.wave_speed = 800
    end   
    for i in 0..120
    @sprite_title.opacity -= 3   
    @sprite_title.update if TWAVE == true   
    @com.opacity -= 3
     case @command_window.index
     when 0   
     @sprite.zoom_x += 0.01
     @sprite.zoom_y += 0.01   
     @sprite2.zoom_x += 0.01
     @sprite2.zoom_y += 0.01       
     @sprite3.zoom_x += 0.01
     @sprite3.zoom_y += 0.01       
     @sprite.ox += 2
     @sprite.oy += 2
     @sprite2.ox += 2
     @sprite2.oy += 2
     @sprite3.ox += 2
     @sprite3.oy += 2   
     end
    update_slide
    Graphics.update 
    end         
  end 
  def dispose_command_window
    @command_window.dispose
  end
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
  def confirm_player_location
    if $data_system.start_map_id == 0
      print "?????????????????????"
      exit
    end
  end
  def command_new_game
    confirm_player_location
    Sound.play_decision
    title_fade
    $game_party.setup_starting_members       
    $game_map.setup($data_system.start_map_id)   
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    close_command_window
    Graphics.fadeout(60)
    Graphics.wait(40)
    Graphics.frame_count = 0
    RPG::BGM.stop
    $game_map.autoplay
  end
  def command_continue
    if @continue_enabled
      Sound.play_decision
      title_fade
      $scene = Scene_File.new(false, true, false)
    else
      Sound.play_buzzer
    end
  end
  def command_shutdown   
    Sound.play_decision
    title_fade
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
  end
  def battle_test
    load_bt_database             
    create_game_objects         
    Graphics.frame_count = 0         
    $game_party.setup_battle_test_members
    $game_troop.setup($data_system.test_troop_id)
    $game_troop.can_escape = true
    $game_system.battle_bgm.play
    snapshot_for_background
    $scene = Scene_Battle.new
  end
  def snapshot_for_background
    $game_temp.background_bitmap.dispose
    $game_temp.background_bitmap = Graphics.snap_to_bitmap
    $game_temp.background_bitmap.blur
  end
  end
[/spoiler]


This script let you use one image per option (New, Continue, Quit)... These three options must be aligned vertically, but i want to use "horizontally".

Thats my title screen:

(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg821.imageshack.us%2Fimg821%2F3655%2Ftitlehj.jpg&hash=4ff7e6a46760def663a4db54c515c3bd7d7c20f1) (http://img821.imageshack.us/i/titlehj.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

So, the problem is this:

To change between the options i have to use up and down arrows, i want to change it to left and right...

Anyone have a solution? If you dont understand let me know!


Thanks for everyone! Salutes!!!!
Title: Re: New Main Menu
Post by: modern algebra on January 14, 2011, 07:15:58 AM
Well, firstly, when posting a script you should use code tags, as otherwise it can be corrupted, as yours is. All you need to do is wrap the script with the following tags:

[code] and [/code] at the end

In any case, try changing this line:


    @command_window = Window_Command.new(172, [s1, s2, s3])


to:


    @command_window = Window_Command.new(172, [s1, s2, s3], 3)
Title: Re: New Main Menu
Post by: gerecit on January 15, 2011, 12:15:38 AM
Hey that works great! Thanks for the help my friend. And sory for not using the tag
Title: Re: New Main Menu
Post by: Grafikal on January 15, 2011, 12:27:09 AM
That means that you should modify your first post to place your script IN those tags, not demonstrate it on a random post, lol.