DijHawk
Nombre de messages : 43 Age : 31 Date d'inscription : 19/11/2006
| Sujet: [demande]Ch'tite modif du script menu tournant Sam 2 Déc - 12:42 | |
| Bon voilà...j'utilise le script de menu tournant : - Code:
-
#============================================================================== # ¡ Window_RingMenu #============================================================================== #============================================================================== # Edited by MakirouAru #============================================================================== class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # › ƒNƒ‰ƒX’è” #-------------------------------------------------------------------------- STARTUP_FRAMES = 20 # ‰ŠúƒAƒjƒ[ƒVƒ‡ƒ“‚̃tƒŒ[ƒ€” MOVING_FRAMES = 10 # ƒŠƒ“ƒO‚ð‰ñ‚µ‚½Žž‚̃tƒŒ[ƒ€” RING_R = 64 # ƒŠƒ“ƒO‚Ì”¼Œa ICON_ITEM = RPG::Cache.icon("objet") # uƒAƒCƒeƒ€vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_SKILL = RPG::Cache.icon("competence") # uƒXƒLƒ‹vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_EQUIP = RPG::Cache.icon("epee_bouclier") # u‘•”õvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_STATUS = RPG::Cache.icon("coeur") # uƒXƒe[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_SAVE = RPG::Cache.icon("sauvegarder") # uƒZ[ƒuvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_EXIT = RPG::Cache.icon("quitter") # uI—¹vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_DISABLE= RPG::Cache.icon("") # Žg—p‹ÖŽ~€–Ú‚É•t‚ƒAƒCƒRƒ“ SE_STARTUP = "056-Right02" # ƒƒjƒ…[‚ðŠJ‚¢‚½‚Æ‚«‚ɖ‚炷SE MODE_START = 1 # ƒXƒ^[ƒgƒAƒbƒvƒAƒjƒ[ƒVƒ‡ƒ“ MODE_WAIT = 2 # ‘Ò‹@ MODE_MOVER = 3 # ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒ[ƒVƒ‡ƒ“ MODE_MOVEL = 4 # ”½ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒ[ƒVƒ‡ƒ“ #-------------------------------------------------------------------------- # › ƒAƒNƒZƒT #-------------------------------------------------------------------------- attr_accessor :index #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- def initialize( center_x, center_y ) super(0, 0, 640, 480) self.contents = Bitmap.new(width-32, height-32) self.contents.font.name = "Shanghai" self.opacity = 0 self.back_opacity = 0 s1 = "Objet" s2 = "Compétence" s3 = "Equiper" s4 = "Etat" s5 = "Sauvegarder" s6 = "Quitter" @commands = [ s1, s2, s3, s4, s5, s6 ] @item_max = 6 @index = 0 @items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ] @disabled = [ false, false, false, false, false, false ] @cx = center_x - 16 @cy = center_y - 16 setup_move_start refresh end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV #-------------------------------------------------------------------------- def update super refresh end #-------------------------------------------------------------------------- # œ ‰æ–ÊÄ•`‰æ #-------------------------------------------------------------------------- def refresh self.contents.clear # ƒAƒCƒRƒ“‚ð•`‰æ case @mode when MODE_START refresh_start when MODE_WAIT refresh_wait when MODE_MOVER refresh_move(1) when MODE_MOVEL refresh_move(0) end # ƒAƒNƒeƒBƒu‚ȃRƒ}ƒ“ƒh–¼•\Ž¦ #rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32) self.contents.draw_text_shadow(@cx - 272, @cy + 24, self.contents.width-32, 32, @commands[@index],1) end #-------------------------------------------------------------------------- # › ‰æ–ÊÄ•`‰æ(‰Šú‰»Žž) #-------------------------------------------------------------------------- def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / STARTUP_FRAMES r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( r * Math.sin( d ) ).to_i y = @cy - ( r * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = MODE_WAIT end end #-------------------------------------------------------------------------- # › ‰æ–ÊÄ•`‰æ(‘Ò‹@Žž) #-------------------------------------------------------------------------- def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + ( RING_R * Math.sin( d * j ) ).to_i y = @cy - ( RING_R * Math.cos( d * j ) ).to_i draw_item(x, y, i) end end #-------------------------------------------------------------------------- # › ‰æ–ÊÄ•`‰æ(‰ñ“]Žž) # mode : 0=”½ŽžŒv‰ñ‚è 1=ŽžŒv‰ñ‚è #-------------------------------------------------------------------------- def refresh_move( mode ) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( RING_R * Math.sin( d ) ).to_i y = @cy - ( RING_R * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = MODE_WAIT end end #-------------------------------------------------------------------------- # œ €–Ú‚Ì•`‰æ # x : # y : # i : €–Ú”Ô† #-------------------------------------------------------------------------- def draw_item(x, y, i) #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s rect = Rect.new(0, 0, @items[i].width, @items[i].height) if @index == i self.contents.blt( x, y, @items[i], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[i], rect, 128 ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect, 128 ) end end end #-------------------------------------------------------------------------- # œ €–ڂ𖳌ø‚É‚·‚é # index : €–Ú”Ô† #-------------------------------------------------------------------------- def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------- # › ‰Šú‰»ƒAƒjƒ[ƒVƒ‡ƒ“‚Ì€”õ #-------------------------------------------------------------------------- def setup_move_start @mode = MODE_START @steps = STARTUP_FRAMES if SE_STARTUP != nil and SE_STARTUP != "" Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100) end end #-------------------------------------------------------------------------- # › ‰ñ“]ƒAƒjƒ[ƒVƒ‡ƒ“‚Ì€”õ #-------------------------------------------------------------------------- def setup_move_move(mode) if mode == MODE_MOVER @index -= 1 @index = @items.size - 1 if @index < 0 elsif mode == MODE_MOVEL @index += 1 @index = 0 if @index >= @items.size else return end @mode = mode @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # › ƒAƒjƒ[ƒVƒ‡ƒ“’†‚©‚Ç‚¤‚© #-------------------------------------------------------------------------- def animation? return @mode != MODE_WAIT end end #============================================================================== # ¡ Window_MenuStatus #------------------------------------------------------------------------------ # @ƒƒjƒ…[‰æ–ʂŃp[ƒeƒBƒƒ“ƒo[‚̃Xƒe[ƒ^ƒX‚ð•\Ž¦‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B #==============================================================================
class Window_RingMenuStatus < Window_Selectable #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» #-------------------------------------------------------------------------- def initialize super(204, 64, 232, 352) self.contents = Bitmap.new(width - 32, height - 32) refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.name = "Shanghai" @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 80 y = 80 * i actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x, y + 24) end end #-------------------------------------------------------------------------- # œ ƒJ[ƒ\ƒ‹‚Ì‹éŒ`XV #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 80, self.width - 32, 80) end end end #============================================================================== # #¡ Scene_RingMenu # ¡ Scene_Menu #------------------------------------------------------------------------------ # @ƒƒjƒ…[‰æ–ʂ̈—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B #==============================================================================
#class Scene_RingMenu class Scene_Menu #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» # menu_index : ƒRƒ}ƒ“ƒh‚̃J[ƒ\ƒ‹‰ŠúˆÊ’u #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # œ ƒƒCƒ“ˆ— #-------------------------------------------------------------------------- def main # ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ðì¬ @spriteset = Spriteset_Map.new # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðì¬ px = $game_player.screen_x - 15 py = $game_player.screen_y - 24 @command_window = Window_RingMenu.new(px,py) @command_window.index = @menu_index # ƒp[ƒeƒBl”‚ª 0 l‚Ìê‡ if $game_party.actors.size == 0 # ƒAƒCƒeƒ€AƒXƒLƒ‹A‘•”õAƒXƒe[ƒ^ƒX‚𖳌ø‰» @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end @command_window.z = 100 # ƒZ[ƒu‹ÖŽ~‚Ìê‡ if $game_system.save_disabled # ƒZ[ƒu‚𖳌ø‚É‚·‚é @command_window.disable_item(4) end # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðì¬ @status_window = Window_RingMenuStatus.new @status_window.x = 160 @status_window.y = 0 @status_window.z = 200 @status_window.visible = false # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs Graphics.transition # ƒƒCƒ“ƒ‹[ƒv loop do # ƒQ[ƒ€‰æ–Ê‚ðXV Graphics.update # “ü—Íî•ñ‚ðXV Input.update # ƒtƒŒ[ƒ€XV update # ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f if $scene != self break end end # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ Graphics.freeze # ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð‰ð•ú @spriteset.dispose # ƒEƒBƒ“ƒhƒE‚ð‰ð•ú @command_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV #-------------------------------------------------------------------------- def update # ƒEƒBƒ“ƒhƒE‚ðXV @command_window.update @status_window.update # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_command ‚ðŒÄ‚Ô if @command_window.active update_command return end # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_status ‚ðŒÄ‚Ô if @status_window.active update_status return end end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡) #-------------------------------------------------------------------------- def update_command # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::B) # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t $game_system.se_play($data_system.cancel_se) # ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Map.new return end # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::C) # ƒp[ƒeƒBl”‚ª 0 l‚ÅAƒZ[ƒuAƒQ[ƒ€I—¹ˆÈŠO‚̃Rƒ}ƒ“ƒh‚Ìê‡ if $game_party.actors.size == 0 and @command_window.index < 4 # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò case @command_window.index when 0 # ƒAƒCƒeƒ€ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒAƒCƒeƒ€‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Item.new when 1 # ƒXƒLƒ‹ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 2 # ‘•”õ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 3 # ƒXƒe[ƒ^ƒX # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 4 # ƒZ[ƒu # ƒZ[ƒu‹ÖŽ~‚Ìê‡ if $game_system.save_disabled # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒZ[ƒu‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Save.new when 5 # ƒQ[ƒ€I—¹ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒQ[ƒ€I—¹‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_End.new end return end # ƒAƒjƒ[ƒVƒ‡ƒ“’†‚È‚çƒJ[ƒ\ƒ‹‚̈—‚ðs‚í‚È‚¢ return if @command_window.animation? # ªor© ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.press?(Input::UP) or Input.press?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL) return end # «or¨ ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.press?(Input::DOWN) or Input.press?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @command_window.setup_move_move(Window_RingMenu::MODE_MOVER) return end end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡) #-------------------------------------------------------------------------- def update_status # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::B) # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t $game_system.se_play($data_system.cancel_se) # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = true @status_window.active = false @status_window.visible = false @status_window.index = -1 return end # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚½ê‡ if Input.trigger?(Input::C) # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò case @command_window.index when 1 # ƒXƒLƒ‹ # ‚±‚̃AƒNƒ^[‚Ìs“®§ŒÀ‚ª 2 ˆÈã‚Ìê‡ if $game_party.actors[@status_window.index].restriction >= 2 # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒLƒ‹‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Skill.new(@status_window.index) when 2 # ‘•”õ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ‘•”õ‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Equip.new(@status_window.index) when 3 # ƒXƒe[ƒ^ƒX # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe[ƒ^ƒX‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Status.new(@status_window.index) end return end end end Il a été modifié mais seulement pour accepter les contours noirs sur les lettres Et voilà mon problème:Quand on appuie sur ECHAP,le menu apparaît autour du héros est nous avons le choix entre plusieurs options...et quand on choisit ETAT, EQUIPER ou COMPETENCE ,un fenêtre apparaît et nous montre le charset du héros...(jusque là j'espère que vous comprenez)eh bien je voudrais qu'à la place du charset ,il est une image (un faceset)... Alors est-ce que vous pouvez me dire comment il faut faire?? :o | |
|
Kaiyh-Chan Modérateur
Nombre de messages : 430 Localisation : Quelque part Emploi : Un métier Loisirs : Making, jeux vidéo, écriture et dessin Date d'inscription : 10/10/2006
| Sujet: Re: [demande]Ch'tite modif du script menu tournant Sam 2 Déc - 16:08 | |
| J'aimerais bien aussi que quelqu'un l'aide, car j'ai essayé de changer ça aussi et j'ai abandonné finalement (enfin, disons que j'ai remis cette modification à plus tard ) | |
|
Siegfried Admin
Nombre de messages : 1634 Age : 37 Localisation : Valence, France Emploi : Etudiant Loisirs : RPG Making, Musique, dessin, mangas Date d'inscription : 17/05/2006
| Sujet: Re: [demande]Ch'tite modif du script menu tournant Dim 3 Déc - 15:49 | |
| Je posterai bientôt un tuto pour afficher vos images... Attendez un peu 2 semaines... | |
|
Kaiyh-Chan Modérateur
Nombre de messages : 430 Localisation : Quelque part Emploi : Un métier Loisirs : Making, jeux vidéo, écriture et dessin Date d'inscription : 10/10/2006
| Sujet: Re: [demande]Ch'tite modif du script menu tournant Dim 3 Déc - 16:58 | |
| - Siegfried a écrit:
- Je posterai bientôt un tuto pour afficher vos images...
Attendez un peu 2 semaines... Oki T'inquiètes, moi ça presse plus à ce stade... J'ai d'autres choses à faire sur mon projet | |
|
Siegfried Admin
Nombre de messages : 1634 Age : 37 Localisation : Valence, France Emploi : Etudiant Loisirs : RPG Making, Musique, dessin, mangas Date d'inscription : 17/05/2006
| Sujet: Re: [demande]Ch'tite modif du script menu tournant Sam 6 Jan - 4:45 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: [demande]Ch'tite modif du script menu tournant | |
| |
|