Pokémon Script Project Forum Index

Manuel | Search
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

PokePiano
Goto page: 1, 2  >
 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts
Previous topic :: Next topic   
Author Message
lloyd
Membre


Joined: 29 Aug 2009
Posts: 10
Localisation: Istres

PostPosted: Sat 25 Dec - 18:47 (2010)    Post subject: PokePiano

Bonjour à tous,
marre de la pokéflute ou on ne fait que "utiliser" alors ce script est pour vous.




En premier, ajoutez ces 4 scripts:
PS: les deux premiers scripts sont de moi ,le troisième de Zeus81 et le quatrième de General_Yorr

 
 #==============================================================================
# ■ PokePiano 
#-----------------------------------------------------------------------------
# Scène modifiable
#-----------------------------------------------------------------------------
# Utilisation :: Faites "insérer un script" et mettez $scene = PokePiano.new
#-----------------------------------------------------------------------------


module POKEMON_S
  class PokePiano < Window_Base
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    def initialize(menu_index = 0)
      @menu_index = menu_index 
      super(0,0,640,480)
      self.contents = Bitmap.new(width - 32, height - 32)     
      self.opacity = 0     
      self.z = 11      
      @interface2 = Sprite.new         
      @interface2.x = 13
      @interface2.y = 200-19
      @interface2.z = 20 
    end      
    #--------------------------------------------------------------------------
    # 
    #--------------------------------------------------------------------------
    def main
      @spriteset = Spriteset_Map.new
      @interface = Interface_Piano.new
      Graphics.transition
      loop do             
        Graphics.update
        Input.update
        
        update
        if $scene != self
          break
        end
      end
      Graphics.freeze
      @spriteset.dispose
      @interface.dispose


    end    
    #--------------------------------------------------------------------------
    # 
    #--------------------------------------------------------------------------
    def update         
      
      # ウィンドウを更新     
      @spriteset.update
      @interface.update
      # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
      update_command
    end
    
    def dispose
      super
    end
      
    #--------------------------------------------------------------------------
    # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
    #--------------------------------------------------------------------------
    def update_command            
      # B ボタンが押された場合
      if Input.trigger?(Input::B)  
        $scene = Scene_Map.new
        return      
      end
      if TACTILE.det_clique_release(14+8,14+8+19,228,228+81+39) or Input.trigger?(Keys::KEY_Q)
        Audio.se_play("Audio/SE/" + "piano0.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(14+18+10,16+26+10,228,228+81) or TACTILE.det_clique_release(14+18+10,51+10,228+81,228+39+81) or Input.trigger?(Keys::KEY_S)
        Audio.se_play("Audio/SE/" + "piano1.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(42+10,42+13+10,228,228+81) or Input.trigger?(Keys::KEY_E)
        Audio.se_play("Audio/SE/" + "piano2.mp3", 100, 100)
        $scene = PokePiano.new
      end
      if TACTILE.det_clique_release(52+4+10,52+4+10+9,228,228+81) or TACTILE.det_clique_release(52+10,52+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_D)
        Audio.se_play("Audio/SE/" + "piano3.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(64+10,64+10+13,228,228+81) or Input.trigger?(Keys::KEY_R)
        Audio.se_play("Audio/SE/" + "piano4.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(77+10,77+10+9,228,228+81) or TACTILE.det_clique_release(72+10,72+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_F)
        Audio.se_play("Audio/SE/" + "piano5.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(77+10+9,86+10+13,228,228+81) or Input.trigger?(Keys::KEY_T)
        Audio.se_play("Audio/SE/" + "piano6.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(99+10,99+10+12,228,228+81) or TACTILE.det_clique_release(92+10,92+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_G)
        Audio.se_play("Audio/SE/" + "piano7.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(112+10,112+10+11,228,228+81) or TACTILE.det_clique_release(112+10,112+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_V)
        Audio.se_play("Audio/SE/" + "piano8.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(123+10,123+10+13,228,228+81) or Input.trigger?(Keys::KEY_Y)
        Audio.se_play("Audio/SE/" + "piano9.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(136+10,136+10+11,228,228+81) or TACTILE.det_clique_release(132+10,132+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_B)
        Audio.se_play("Audio/SE/" + "piano10.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(147+10,147+10+13,228,228+81) or Input.trigger?(Keys::KEY_U)
        Audio.se_play("Audio/SE/" + "piano11.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(160+10,160+10+11,228,228+81) or TACTILE.det_clique_release(152+10,152+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_N)
        Audio.se_play("Audio/SE/" + "piano12.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(172+10,172+10+10,228,228+81) or TACTILE.det_clique_release(172+10,172+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_J)
        Audio.se_play("Audio/SE/" + "piano13.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(182+10,182+10+13,228,228+81) or Input.trigger?(Keys::KEY_I)
        Audio.se_play("Audio/SE/" + "piano14.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(195+10,190+10+14,228,228+81) or TACTILE.det_clique_release(192+10,192+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_K)
        Audio.se_play("Audio/SE/" + "piano15.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(204+10,204+10+13,228,228+81) or Input.trigger?(Keys::KEY_O)
        Audio.se_play("Audio/SE/" + "piano16.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(217+10,212+14+10,228,228+81) or TACTILE.det_clique_release(212+10,212+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_L)
        Audio.se_play("Audio/SE/" + "piano17.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(226+10,226+13+10,228,228+81) or Input.trigger?(Keys::KEY_P)
        Audio.se_play("Audio/SE/" + "piano18.mp3", 100, 100)
       
      end
      if TACTILE.det_clique_release(239+10,239+10+12,228,228+81) or TACTILE.det_clique_release(232+10,232+10+19,228+81,228+39+81) or Input.trigger?(Keys::KEY_M)
        Audio.se_play("Audio/SE/" + "piano19.mp3", 100, 100)
       
      end
      return
    end
  end
end







 
#==============================================================================
# ■ Interface_Piano
#-----------------------------------------------------------------------------
# Scène modifiable
#-----------------------------------------------------------------------------
# Interface graphique du PokéPiano
#-----------------------------------------------------------------------------


class Interface_Piano < Window_Base   
  include POKEMON_S  
  
  def initialize  
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)   
    self.contents.font.name = $fontface    
    self.contents.font.size = $fontsize    
    self.opacity = 0     
    self.z = 21   
    @interface = Sprite.new         
    @interface.x = 13
    @interface.y = 227
    @interface.z = 30    
    refresh
  end     
  def dispose
    super 
    @interface.dispose
  end
  def refresh     
      @interface.bitmap = RPG::Cache.picture("PokéPiano.png")
  end    
end





 # Mouse Ultimate v1.2
# Il y a trois touches possibles : Mouse::LEFT, Mouse::RIGHT et Mouse::MIDDLE
# pour respectivement clic gauche, clic droit et clic milieu.
# Vous pouvez trouvez les fonctions trigger?, press? et repeat? comme dans Input
# Mais aussi Mouse.release?(key) pour voir si une touche est relachée
# et Mouse.double_trigger?(key) pour les double clics.
# On récupère les coordonnées du curseur avec Mouse.x et Mouse.y
# On peut aussi déplacer le curseur avec Mouse.x = new_x et Mouse.y = new_y
# Pour changer la visibilité du curseur : Mouse.visible = true ou false
# Ajouts v1.2 :  
# Optimisation des performances.
# Vous pouvez sélectionner l'image du curseur ligne 44.
# La souris est mise à jour automatiquement tant qu'elle est visible.
 
unless Input.method_defined?(:zeus_mouse_update)
  class << Input
    alias zeus_mouse_update update
    def update
      Mouse.update if Mouse.visible
      zeus_mouse_update
    end
  end
end
 
module Mouse
  
  FindWindow = Win32API.new("user32", "FindWindow", "PP", "I")
  ShowCursor = Win32API.new("user32", "ShowCursor", "I", "I" )
  GetKeyState = Win32API.new("user32", "GetKeyState", "I", "I")
  GetCursorPos = Win32API.new("user32", "GetCursorPos", "P", "I")
  SetCursorPos = Win32API.new("user32", "SetCursorPos", "II", "I")
  ScreenToClient = Win32API.new("user32", "ScreenToClient", "IP", "I")
  ClientToScreen = Win32API.new("user32", "ClientToScreen", "IP", "I")
  GetDoubleClickTime = Win32API.new("user32", "GetDoubleClickTime", "", "I")
  
  LEFT, RIGHT, MIDDLE = 1, 2, 4
  HWindow = FindWindow.call("RGSS Player", open("Game.ini") {|f|
            f.read=~/^\s*Title\s*=(.*)$/i ? $1.strip : "Untitled"})
  DoubleClickTime = GetDoubleClickTime.call*Graphics.frame_rate/1000
  RA, RB = Graphics.frame_rate*4/10, Graphics.frame_rate/10
  Cursor = Sprite.new
  Cursor.z, Cursor.visible = 0xFFFF, false
  begin
    Cursor.bitmap = Bitmap.new("Graphics/Pictures/Cursor.png")
  rescue
    Cursor.bitmap = Bitmap.new(8, 8)
    Cursor.bitmap.fill_rect(0, 0, 3, 7, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(0, 0, 7, 3, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(5, 5, 3, 3, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(1, 1, 1, 5, Color.new(255,255,255))
    Cursor.bitmap.fill_rect(1, 1, 5, 1, Color.new(255,255,255))
    Cursor.bitmap.fill_rect(6, 6, 1, 1, Color.new(255,255,255))
  end
  @@pos, @@count = "\0"*8, {LEFT=>[0, 0], RIGHT=>[0, 0], MIDDLE=>[0, 0]}
  
  def self.update
    GetCursorPos.call(@@pos)
    ScreenToClient.call(HWindow, @@pos)
    Cursor.x, Cursor.y = @@pos.unpack("ii")
    dct = Graphics.frame_count - DoubleClickTime
    for k,v in @@count
      v[0] = get_press(k) ? v[0]+1 : v[0]>0 ? -1 : 0
      v[1] = v[1]>dct ? v[0]==1 ? -1 : v[1] : v[0]==1 ? Graphics.frame_count : 0
    end
  end
  def self.press?(k)          valid?(k) and @@count[k][0]  >  0 end
  def self.trigger?(k)        valid?(k) and @@count[k][0] ==  1 end
  def self.double_trigger?(k) valid?(k) and @@count[k][1] == -1 end
  def self.release?(k)        valid?(k) and @@count[k][0] == -1 end
  def self.repeat?(k) valid?(k) and ((c=@@count[k][0])==1 or (c>RA and c%RB==0)) end
  def self.x()       Cursor.x       end
  def self.y()       Cursor.y       end
  def self.visible() Cursor.visible end
  def self.x=(x)     set_pos(x, y)  end
  def self.y=(y)     set_pos(x, y)  end
  def self.visible=(v)
    loop {break if v ? ShowCursor.call(0)<0 : ShowCursor.call(1)>0}
    Cursor.visible = v
  end
private
  def self.valid?(k) @@count.include?(k) end
  def self.get_press(k) GetKeyState.call(k)[15] == 1 end
  def self.set_pos(x, y)
    pos = [Cursor.x=x, Cursor.y=y].pack("ii")
    ClientToScreen.call(HWindow, pos)
    SetCursorPos.call(*pos.unpack("ii"))
  end
  
end
Mouse.visible = true




 
module Keys
 KEY_SOURISGAUCHE    = 0x01        # LEFT MOUSE Keys
  
  
 KEY_BACK      = 0x08        # BACKSPACE Keys
 KEY_TAB       = 0x09        # TAB Keys
 KEY_RETURN    = 0x0D        # ENTER Keys
 KEY_SHIFT     = 0x10        # SHIFT Keys
 KEY_PAUSE     = 0x13        # PAUSE Keys
 KEY_CAPITAL   = 0x14        # CAPS LOCK Keys
 KEY_CAPSLOCK  = 0x14        # CAPS LOCK Key
 KEY_ESCAPE    = 0x1B        # ESC Keys
 KEY_SPACE     = 0x20        # SPACEB