조회 수 147 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# ■ Window_RingMenu
#==============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# ○ クラス定?
# 링메뉴 소지금,플레이시간 추가 버젼 : 걸인소년
#--------------------------------------------------------------------------
STARTUP_FRAMES = 20 # 初期アニメ?ションのフレ?ム?
MOVING_FRAMES = 5 # リングを回した時のフレ?ム?
RING_R = 64 # リングの半?
ICON_ITEM = RPG::Cache.icon("034-Item03") # 「アイテム」メニュ?のアイコン
ICON_SKILL = RPG::Cache.icon("044-Skill01") # 「スキル」メニュ?のアイコン
ICON_EQUIP = RPG::Cache.icon("001-Weapon01") # 「?備」メニュ?のアイコン
ICON_STATUS = RPG::Cache.icon("050-Skill07") # 「ステ?タス」メニュ?のアイコン
ICON_SAVE = RPG::Cache.icon("038-Item07") # 「セ?ブ」メニュ?のアイコン
ICON_EXIT = RPG::Cache.icon("046-Skill03") # 「終了」メニュ?のアイコン
ICON_DISABLE= RPG::Cache.icon("") # 使用禁止項目に付くアイコン
SE_STARTUP = "056-Right02" # メニュ?を開いたときに鳴らすSE
MODE_START = 1 # スタ?トアップアニメ?ション
MODE_WAIT = 2 # 待機
MODE_MOVER = 3 # 時計回り回?アニメ?ション
MODE_MOVEL = 4 # 反時計回り回?アニメ?ション
#--------------------------------------------------------------------------
# ○ アクセサ
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
super(0, 0, 640, 480)
self.contents = Bitmap.new(width-32, height-32)
self.opacity = 0
self.back_opacity = 0
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "캐릭터정보"
s5 = "세이브"
s6 = "게임종료"
@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
#--------------------------------------------------------------------------
# ● フレ?ム更新
#--------------------------------------------------------------------------
def update
super
refresh
end
#--------------------------------------------------------------------------
# ● ?面再描?
#--------------------------------------------------------------------------
def refresh
self.contents.clear
# アイコンを描?
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
# アクティブなコマンド名表示
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=反時計回り 1=時計回り
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ○ 初期化アニメ?ションの準備
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ○ 回?アニメ?ションの準備
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ○ アニメ?ション中かどうか
#--------------------------------------------------------------------------
def animation?
return @mode != MODE_WAIT
end
end
#==============================================================================
# ■ Window_MenuStatus
#------------------------------------------------------------------------------
#  メニュ??面でパ?ティメンバ?のステ?タスを表示するウィンドウです。
#==============================================================================

class Window_RingMenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(204, 64, 232, 352)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@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
#--------------------------------------------------------------------------
# ● カ?ソルの矩形更新
#--------------------------------------------------------------------------
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
#------------------------------------------------------------------------------
#  メニュ??面の?理を行うクラスです。
#==============================================================================

#class Scene_RingMenu
class Scene_Menu
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# menu_index : コマンドのカ?ソル初期位置
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# ● メイン?理
#--------------------------------------------------------------------------
def main
      @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 318
    @gold_window.visible = true
    @time_window = Window_PlayTime.new
    @time_window.x = 0 #화면상에 뜨는창의 x좌표
    @time_window.y = 204 #화면상에 뜨는창의 y좌표
    @time_window.visible = true
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# コマンドウィンドウを作成
px = $game_player.screen_x - 15
py = $game_player.screen_y - 24
@command_window = Window_RingMenu.new(px,py)
@command_window.index = @menu_index
# パ?ティ人?が 0 人の場合
if $game_party.actors.size == 0
# アイテム、スキル、?備、ステ?タスを無?化
@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
# セ?ブ禁止の場合
if $game_system.save_disabled
# セ?ブを無?にする
@command_window.disable_item(4)
end
# ステ?タスウィンドウを作成
@status_window = Window_RingMenuStatus.new
@status_window.x = 160
@status_window.y = 0
@status_window.z = 200
@status_window.visible = false
# トランジション?行
Graphics.transition
# メインル?プ
loop do
# ゲ?ム?面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレ?ム更新
update
# ?面が切り替わったらル?プを中?
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# スプライトセットを解放
@spriteset.dispose
# ウィンドウを解放
@command_window.dispose
@status_window.dispose
@gold_window.dispose
@time_window.visible = false
    end
#--------------------------------------------------------------------------
# ● フレ?ム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@command_window.update
@status_window.update
# コマンドウィンドウがアクティブの場合: update_command を呼ぶ
if @command_window.active
update_command
return
end
# ステ?タスウィンドウがアクティブの場合: update_status を呼ぶ
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# ● フレ?ム更新 (コマンドウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_command
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# マップ?面に切り替え
$scene = Scene_Map.new
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# パ?ティ人?が 0 人で、セ?ブ、ゲ?ム終了以外のコマンドの場合
if $game_party.actors.size == 0 and @command_window.index < 4
# ブザ? SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# コマンドウィンドウのカ?ソル位置で分岐
case @command_window.index
when 0 # アイテム
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# アイテム?面に切り替え
$scene = Scene_Item.new
when 1 # スキル
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ステ?タスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 2 # ?備
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ステ?タスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 3 # ステ?タス
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ステ?タスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.visible = true
@status_window.index = 0
when 4 # セ?ブ
# セ?ブ禁止の場合
if $game_system.save_disabled
# ブザ? SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# セ?ブ?面に切り替え
$scene = Scene_Save.new
when 5 # ゲ?ム終了
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ゲ?ム終了?面に切り替え
$scene = Scene_End.new
end
return
end
# アニメ?ション中ならカ?ソルの?理を行わない
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
#--------------------------------------------------------------------------
# ● フレ?ム更新 (ステ?タスウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_status
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウをアクティブにする
@command_window.active = true
@status_window.active = false
@status_window.visible = false
@status_window.index = -1
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# コマンドウィンドウのカ?ソル位置で分岐
case @command_window.index
when 1 # スキル
# このアクタ?の行動制限が 2 以上の場合
if $game_party.actors[@status_window.index].restriction >= 2
# ブザ? SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# スキル?面に切り替え
$scene = Scene_Skill.new(@status_window.index)
when 2 # ?備
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ?備?面に切り替え
$scene = Scene_Equip.new(@status_window.index)
when 3 # ステ?タス
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ステ?タス?面に切り替え
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end


현재 제가 사용하고 있는 링 메뉴입니다.
걸인소년 님께서 소지금이랑 플래이타임 추가된 것을 쓰고 있는데요.

세이브를 누르면 아에 컴퓨터 자체가 튕겨버리더군요.
그래서 그러는데

아에 세이브란 목록을 없엘 수 없을가요?

저는 실력이 딸려서 뭘 지우면 또 오류나고 또 지워주면 아에 안되고
그래서 이렇게 부탁드립니다.

저 스크립트에서 세이브 관련된 부분을 모조리 없에 주세요.


(참고로 지정된 위치에서만 세이브 가능하게 할 예정)
?

  1. "파일 dmd 은 열지 않습니다" 이리저디 옮겼는데..

    Date2006.08.20 By에리얼라이 Views231
    Read More
  2. "폴더를 작성할수 없습니다." 라는 경고문구...

    Date2006.10.15 By다크세이버™ Views159
    Read More
  3. "폴더를 작성할수 없습니다." 라는 경고문구...

    Date2006.10.15 By『덩키동크』 Views158
    Read More
  4. "폴더를 작성할수 없습니다." 라는 경고문구...

    Date2006.10.15 BySKT_Terr god Views229
    Read More
  5. $A,$B… 를 사용하여 나타내는 문자 변경하는 법

    Date2009.02.20 By노을. Views772
    Read More
  6. 링메뉴 스크립트에서 세이브관련된건 다 없에주세요

    Date2006.07.09 By샤안 Views147
    Read More
  7. 으악 염치없게 또 질문입니다;;

    Date2006.06.28 Byyouhwa지롱 Views179
    Read More
  8. 전투할때 플래이어의 이미지를 옮기는 방법?

    Date2006.07.02 By샤안 Views162
    Read More
  9. <RPGXP>대화창 불투명도, 사이즈 조정하기..

    Date2005.12.28 By『연금술사』 Views659
    Read More
  10. <RPGXP>대화창 불투명도, 사이즈 조정하기..

    Date2005.12.26 By아름다운마을 Views583
    Read More
  11. <스샷ok>포켓몬스터 오프닝만들때 뭐가 문제죠?

    Date2005.07.09 ByDarksoul Views341
    Read More
  12. 'YEP.44 – Animated Sideview Enemies' 플러그인 사용해보신분 계신가요?

    Date2018.08.13 ByNeuromancer Views842
    Read More
  13. '데쉬'라는 스크립트가 있어서 질문올립니다.

    Date2005.06.29 By내마음블루 Views238
    Read More
  14. '데쉬'라는 스크립트가 있어서 질문올립니다.

    Date2005.06.29 ByGAiA Views301
    Read More
  15. '레벨 변수'는 어떻게 만드나요?

    Date2016.11.21 By낭만오리 Views735
    Read More
  16. '리스트의 인덱스가 범위를 초과하는 에러' 해결좀...

    Date2008.07.21 By닝구 Views2577
    Read More
  17. '메모리 스트림 확대 중에 메모리가 부족해졌습니다' 그리고 데이터 손상.

    Date2011.02.11 By땡중 Views2037
    Read More
  18. '심사완료'에 대해

    Date2015.01.24 Bynachen Views422
    Read More
  19. '아 게임 실행이안됩니다!!' 대한 답변입니다.

    Date2006.12.30 By-불사조- Views91
    Read More
  20. '화면 정지' 에 대해서 질문드립니다.

    Date2007.03.21 By『덩키동크』 Views211
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)