Heures au format UTC + 1 heure [ Heure d’été ]




Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Menu principal allegé
MessagePublié: 11 Sep 2009, 10:04 
Ancien membre du staff
Ancien membre du staff
Avatar de l’utilisateur

Inscrit le: 24 Juin 2008, 00:00
Messages: 476
Logiciel(s) préféré(s): Scintilla based
Point(s) Fort(s): Rubyismes
Points d'aide: 60/60

Créations :

- [Rmxp] Vocab

- [Rmxp] Visible Equipment

- [Rmxp] Animated Title

- [XP/VX] Cache Extension


Voir ses créations

Menu principal allegé


Auteur : Wawower

Description :
Ce script vous permet d'avoir un menu principal avec une image de fond et des icones pour les choix plus simple et plus leger que le menu de base.

Realisé pour la commande :
viewtopic.php?f=92&t=102441&start=0

Installation : Ce script est à placer au dessus de main.

Utilisation :
Il vous faut une image dans pictures pour le fond et 2*6 icônes pour le choix.
6 représentant successivement le menu objet, le menu compétence, le menu équiper, le menu état, le menu sauvegarde et le menu quitter. Et pour chacune d'elles leur "équivalent selectionné" nommée comme la precedente avec '_selected' à la fin.
Exemple de contenu du dossier Icons
Icone-1, Icone-2, Icone-3, Icone-4, Icone-5, Icone-6, Icone-1_selected, Icone-2_selected, Icone-3_selected, Icone-4_selected, Icone-5_selected, Icone-6_selected


Personnalisation :
- Vous pouvez modifiez le nom et la position de l'image de fond en modifiant les valeurs des constantes : Fond_Name, Fond_X, Fond_Y aux environ des lignes trente.
- Vous pouvez modifier les noms des icones, la position de la première et l'écart entre chacune en changeant respectivement la valeur des constantes : Names, X, Y, Ecart dans les premières lignes

Script :
Code: Tout sélectionner
class Sprite_MainMenuIcon < Sprite

  Names = ['Icone-1', 'Icone-2', 'Icone-3', 'Icone-4', 'Icone-5', 'Icone-6']
  X = 64
  Y = 0
  Ecart = 32
 
  def initialize(index)
      @index = index
      super()
      self.x = X + index * Ecart
      self.y = Y
      @selected = (index == $game_temp.last_menu_index)
      bmpname = Names[@index]
      bmpname += '_selected' if @selected
      self.bitmap = RPG::Cache.icon(bmpname)
  end

  def selected=(bool)
      return if bool == @selected
      bmpname = Names[@index]
      bmpname += '_selected' if bool
      self.bitmap = RPG::Cache.icon(bmpname)
      @selected = bool
  end
 
  def dispose
      RPG::Cache.picture(Names[@index]).dispose
      RPG::Cache.picture(Names[@index]+'_selected').dispose
      super
  end

end

class Spriteset_MainMenu
 
  Fond_Name = 'Fond'
  Fond_X = 0
  Fond_Y = 0
 
  def initialize
      @fond = Sprite.new
      @fond.x = Fond_X
      @fond.y = Fond_Y
      @fond.bitmap = RPG::Cache.picture(Fond_Name)
      @icons = (0...6).map { |i| Sprite_MainMenuIcon.new(i) }
      @index = $game_temp.last_menu_index
  end
 
  attr_reader :index

  def index=(val)
      @icons.each_with_index { |icon, i|
           icon.selected = (val == i)
      }
      @index = val
  end
     
  def dispose
      @fond.dispose
      @icons.each { |icon| icon.dispose }
  end
 
end


class Game_Temp
 
  attr_accessor :last_menu_index
 
  alias main_menu_initialize initialize
  def initialize(*args)
      main_menu_initialize(*args)
      @last_menu_index = 0
  end
   
end

class Scene_Menu
 
  def initialize(*args); end
 
  def main
      @map = Spriteset_Map.new
      @spriteset = Spriteset_MainMenu.new
      Graphics.transition
      while $scene == self
          Graphics.update
          Input.update
          update
      end
      Graphics.freeze   
      @map.dispose
      @spriteset.dispose
  end
   
  def update
      @map.update
      if Input.trigger?(Input::LEFT)
          @spriteset.index = (@spriteset.index - 1) % 6
      elsif Input.trigger?(Input::RIGHT)
          @spriteset.index = (@spriteset.index + 1) % 6
      elsif Input.trigger?(Input::C)
         $game_system.se_play($data_system.decision_se)
         i = @spriteset.index
         $game_temp.last_menu_index = i
         case i
            when 0
                $scene = Scene_Item.new
            when 1
                $scene = Scene_Skill.new(0)
            when 2
                $scene = Scene_Equip.new(0)
            when 3
                $scene = Scene_Status.new(0)
            when 4
                $scene = Scene_Save.new
            when 5
               $scene = Scene_End.new
         end
      elsif Input.trigger?(Input::B)
          $game_temp.last_menu_index = 0
          $game_system.se_play($data_system.cancel_se)
          $scene = Scene_Map.new
      end
  end
 
end


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728