#=================================================
# Window_RingMenu
#=================================================
#=================================================
# Edited by MakirouAru
#=================================================
class Window_RingMenu < Window_Base
#---------------------
# ‚ €™N€™‚€™X‚„‚
#---------------------
STARTUP_FRAMES = 20 # ‚ €™A€™j€™[€™V€™‚€™‚“‚š€™t€™€™[€™€š‚
MOVING_FRAMES = 5 # €™ €™‚“€™O‚š‚‚š‚šŽž‚š€™t€™€™[€™€š‚
RING_R = 64 # €™ €™‚“€™O‚š‚€™a
ICON_ITEM = RPG::Cache.icon("034-Item03") # u€™A€™C€™e€™€šv€™€™j€™‚[‚š€™A€™C€™R€™‚“
ICON_SKILL = RPG::Cache.icon("044-Skill01") # u€™X€™L€™‚v€™€™j€™‚[‚š€™A€™C€™R€™‚“
ICON_EQUIP = RPG::Cache.icon("001-Weapon01") # u‚œ‚‚v€™€™j€™‚[‚š€™A€™C€™R€™‚“
ICON_STATUS = RPG::Cache.icon("050-Skill07") # u€™X€™e[€™^€™Xv€™€™j€™‚[‚š€™A€™C€™R€™‚“
ICON_SAVE = RPG::Cache.icon("038-Item07") # u€™Z[€™uv€™€™j€™‚[‚š€™A€™C€™R€™‚“
ICON_EXIT = RPG::Cache.icon("046-Skill03") # 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 = "Arial"
self.opacity = 0
self.back_opacity = 0
s1 = "Objets"
s2 = "Comptences"
s3 = "Equipement"
s4 = "Etats"
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(rect, @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 = "Arial"
@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€™
#€™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
endSource: RPG Cration
une petite screen:

Connexion
Inscription
Aide
Ajouter une rponse


Multi-citation







