collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial  (Gelesen 2663 mal)

Offline MarcoMario

  • Ich bin ein
  • Database-Verunstalter
  • **
  • Beiträge: 121
  • Projekt: The Shadows Light
    • Marco-Mario

Hallo, in diesem Tutorial möchte ich euch zeigen, wie ihr ein Menü mit drei Einträgen und einem Bild machen könnt. Das ganze sollte später zum Beispiel so aussehen:
Spoiler for Hiden:

Also dann fangen wir mal ganz von vorne an:
1. Als erstes öffnet ihr euer Projekt oder fang ein neues an.
2. Als nächstes öffnet ihr den Script-Editor und ersetzt den Script "Scene_Menu" mit dem hier:
Spoiler for Hiden:
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
    sample_name = "Graphics/System/menu_pic.png"
x = 0
y = 104
temp=Bitmap.new(sample_name)
@sample_window = Window_Base.new(x,y,temp.width+32,temp.height+32)
@sample_window.contents = Bitmap.new(temp.width,temp.height)
@sample_window.contents.blt(0,0,temp,temp.rect)
temp.dispose
@sample_window.back_opacity = 0
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @sample_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
    @sample_window.update
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::save
    s3 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1      # Save
        $scene = Scene_File.new(true, false, false)
      when 2      # End Game
        $scene = Scene_End.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Start Actor Selection
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
 #--------------------------------------------------------------------------
  # * Update Actor Selection
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 3  # skill
        $scene = Scene_Skill.new(@status_window.index)
      when 4  # equipment
        $scene = Scene_Equip.new(@status_window.index)
      when 5  # status
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
3. Okay damit wäre das meißte geschafft. Nun wenden wir uns dem *Create Command Window-Teil zu. Bevor ihr den neuen Script eingefügt hab sah es so aus:
Spoiler for Hiden:
#--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    end
  end
Nun sieht es so aus:
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::save
    s3 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(4, false)     # Disable save
    end
  end
Ich habe in dem neuem Script folgendes verändert: Ich habe den Teil
Spoiler for Hiden:
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
auf das hier beschränkt
Spoiler for Hiden:
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::save
    s3 = Vocab::game_end
. Das könnt ihr natürlich nach belieben ändern, wenn ihr zum Beispiel nur die Einträge "Item", "Status" & "Save" haben wollt dann müsste es in etwa so aussehen:
Spoiler for Hiden:
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::status
    s3 = Vocab::save
!
4. Okay nun habe ich die Zeile
Spoiler for Hiden:
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
mit dem hier ersetzt
Spoiler for Hiden:
    @command_window = Window_Command.new(160, [s1, s2, s3])
, dies kann in jedem Fall so bleiben, denn wir wollen ja nur 3 Menü-Einträge.
5. Nun habe ich im Abschnitt *Update Command Selection den Teil
Spoiler for Hiden:
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # End Game
        $scene = Scene_End.new
mit dem hier ersetzt
Spoiler for Hiden:
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1      # Save
        $scene = Scene_File.new(true, false, false)
      when 2      # End Game
        $scene = Scene_End.new
, weil wir ja nur die 3 Einträge "Item", "Save" & "End Game" haben wollen, wollen wir aber Anstatt "End Game" "Status", und zwar über dem Eintrag "Save" müssen wir dies so ändern:
Spoiler for Hiden:
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1  # Skill, equipment, status
        start_actor_selection
      when 2      # Save
        $scene = Scene_File.new(true, false, false)
6. So nun müssen wir je nachdem welche 3 Einträge wir haben etwas ändern, also für die 3 Einträge "Item", Save" & "End Game" müssen wir folgendes ändern: Im Script "Scene_Item", die Zeile
Spoiler for Hiden:
#--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(0)
  end
, dort müssen wir garnichts ändern, denn "Item" soll ja an erster Stelle bleiben, denn es gilt: 0=1
1=2
2=3!
Aber im Script "Scene_File" muss die Zeile
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(4)
    end
  end
mit dem hier ersetzt werden, denn wir wollen "Save" ja an zweiter Stelle (1=2):
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(1)
    end
  end
Nun müssen wir nurnoch im Script "Scene_End"
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(5)
  end
mit dem heir ersetzen
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(2)
  end
Wollen wir allerdings die Enträge "Item", "Status" & "Save" müssen wir anstatt bei "Scene_End" etwas bei "Scene_Status" ändern und zwar das
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(3)
  end
mit dem
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(1)
  end
und "Scene_File" mit dem hier
Spoiler for Hiden:
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(2)
    end
  end
7. [Für alle die den Status wollen] Jetzt nurnoch bei "Scene_Status" im Abschnitt * Update Actor Selection
Spoiler for Hiden:
      case @command_window.index
      when 3  # skill
        $scene = Scene_Skill.new(@status_window.index)
      when 4  # equipment
        $scene = Scene_Equip.new(@status_window.index)
      when 5  # status
        $scene = Scene_Status.new(@status_window.index)
mit dem hier ersetzen
Spoiler for Hiden:
      case @command_window.index
      when 3  # skill
        $scene = Scene_Skill.new(@status_window.index)
      when 4  # equipment
        $scene = Scene_Equip.new(@status_window.index)
      when 1  # status
        $scene = Scene_Status.new(@status_window.index)
8. Soviel zu den Menü-Einträgen, in dem neuem "Scene_Menu"-Script (siehe oben) ist schon die Funktion Bilder einzubauen intigriert, ihr müsst jetzt nur noch ein Bild mit den Maßen 128 x 224 mit dem Namen menu_pic.png (sollte auch ein PNG sein) in den Ordner "System" importieren - Fertig!

Bitte entschuldigt falls es ein paar grammatische und rechtschreibliche (gibt es das Wort?) Fehler gibt. Es ist immerhin mein erstes Tutorial, aber ich habe mir sehr viel Mühe gemacht. Fragen, Lob oder Kritik ist aber dennoch erwünscht hier habe ich nochmal alles (samt Beispiel_Bild) angehängt!

Bei Verwendung bitte Credits an mich (MarcoMario)!

Special-Thanks:
An Hanmac für die freundliche Hilfe beim Bilder-Script!

LG, MarcoMario

Anhang: http://www.marco-mario.de/userfiles/RPGVX/Das_Wie-Mache-Ich-Ein-Menue-Mit-Nur-Drei-Eintraegen-Und-Bild_-Tutorial.zip

PS: Ihr könnt auch einfach die im Anhang verwendeten Scripts für eure "Version" einfügen, ohne irgendetwas zu ändern, ihr müsst dann nurnoch das menu_pic.png importieren!
« Letzte Änderung: Mai 12, 2009, 16:36:52 von MarcoMario »

Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline Sk!p

  • Foren-ReArchitekt
  • VX-Großmeister
  • *****
  • Beiträge: 975
  • Mit(t)arbeiter schreibt man mit einem T =P
    • Foren-ReArchitekt
Ich will ja nicht meckern, aber ich dachte es ist ein Tutorial.

Viel mehr ist es eine Anleitung wie man ein Skript benutzt.
Ich dachte immer ein Tutorial wäre etwas, was man ohne Großen Aufwand nachmachen könnte.
Aber der erste Satz ist schon ''Man nehme das ... und kopiere es hier rein...'' Naja =/

Klischee Antagonist! | Back From Hell To Conquer The World!


Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline Husky32m

  • Ralph
  • *
  • Beiträge: 6
Sehe ich irgendwie auch so...
Aber naja hast dir die Zeit dafür genommen =)

Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline MarcoMario

  • Ich bin ein
  • Database-Verunstalter
  • **
  • Beiträge: 121
  • Projekt: The Shadows Light
    • Marco-Mario
Dann kanns ja jemand verschieben ;-)

Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline OceanBlue

  • Palmenfan
  • VX-Großmeister
  • *****
  • Beiträge: 822
  • Back from the Dead
Ein Tutorial ist eine Anleitung und dies ist eine Anleitung für ein Script, also passt das schon so.
Auf jeden Fall mal danke MM, einige können sowas bestimmt gebrauchen.


Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline Valentine

  • Eventmeister
  • ***
  • Beiträge: 352
Hey schönes TuT!
Mich würde interessieren wie man dieses Custom Bild auch in andere Menü Skripte einbauen kann, falls das geht?
Bei dem Standard Menü gehts ja wunderbar.

Hätte das gerne bei diesem hier: http://www.rpgvx.net/index.php/topic,2058.0.html
Da ist ja noch ein kleiner Zwischenraum, wo ich mir so ein Bild vorstellen könnte.

Machbar oder nicht?

Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline FlipelyFlip

  • Will sein Alter nicht verraten xD
  • Administrator
  • VX-Großmeister
  • ****
  • Beiträge: 884
  • Heyho (=
    • Flips Musik Kariere auf Facebook xD
da ich weniger glaube dass MarcoMario dir noch antworten wird, mach ichs einfach und zwar:

Möglich ist es, machbar auch. Dieses Tutorial zeigt dir den Sourcecode, wie es ausguckt und du musst es eigentlich nur noch rein kopieren und etwas bearbeiten, dann haste die ganze Sache drin ;)

Es ist nicht viel Zauberei dahinter (:

lg flip

Re: Das Wie-Mache-Ich-Ein-Menü-Mit-Nur-Drei-Einträgen-Und-Bild -Tutorial

Offline Valentine

  • Eventmeister
  • ***
  • Beiträge: 352
Danke Flip, glaube wird er auch nicht mehr.
Recht haste, soweit dacht ich auch schon, aber ich hab eh gemerkt das es sich wirklich nur hier lohnt wenn man ne größere Fläche dafür hat. Könnte man bestimmt was feines mit anstellen, aber der Aufwand lohnt sich eh nicht.

 


 Bild des Monats

rooftop party

Views: 3099
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal