设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: WildDagger
打印 上一主题 下一主题

[已经解决] 請問怎麼作出這樣的MENU呢?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
45
在线时间
47 小时
注册时间
2009-6-1
帖子
127
11
 楼主| 发表于 2009-8-5 13:57:01 | 只看该作者
我補一下我改寫的腳本
  1. unless $imported["MenuAlter"]
  2. class Window_MenuStatus < Window_Selectable
  3.   #--------------------------------------------------------------------------
  4.   # ● リフレッシュ
  5.   #--------------------------------------------------------------------------
  6.   def refresh
  7.     @item_max = $game_party.actors.size
  8.     self.contents.dispose
  9.     self.contents = Bitmap.new(width, @item_max * 80)
  10.     for i in 0...@item_max
  11.       x = 380 - i * 64
  12.       y = i * 80
  13.       # 戦闘参加メンバー以降は背景を暗くする
  14.       if i >= $game_party.battle_actors.size
  15.         self.contents.fill_rect(x - 64, y, 448, 96, Color.new(0, 0, 0, 96))
  16.       end
  17.       actor = $game_party.actors[i]
  18.       draw_actor_graphic(actor, x - 40, y + 50)
  19.       draw_actor_name(actor, x, y)
  20.       #draw_actor_class(actor, x + 144, y -8)
  21.       draw_actor_level(actor, x + 72, y)
  22.       draw_actor_state(actor, x - 60, y + 48)
  23.       #draw_actor_exp(actor, x + 236, y + 64)
  24.       draw_actor_hp(actor, x, y + 20, 120)
  25.       draw_actor_sp(actor, x, y + 44, 120)
  26.     end
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 行数の取得
  30.   #--------------------------------------------------------------------------
  31.   def row_max
  32.     # 項目数から行数を算出
  33.     return @item_max - 1
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 先頭の行の取得
  37.   #--------------------------------------------------------------------------
  38.   def top_row
  39.     # ウィンドウ内容の転送元 Y 座標を、1 行の高さ 112 で割る
  40.     return self.oy / 80
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 先頭の行の設定
  44.   #     row : 先頭に表示する行
  45.   #--------------------------------------------------------------------------
  46.   def top_row=(row)
  47.     # row を 0 ~ row_max - 1 に修正
  48.     row = [[row, 0].max, row_max - 1].min
  49.     # row に 1 行の高さ 112 を掛け、ウィンドウ内容の転送元 Y 座標とする
  50.     self.oy = row * 80
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 1 ページに表示できる行数の取得
  54.   #--------------------------------------------------------------------------
  55.   def page_row_max
  56.     return (self.height - 32) / 80
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 1 ページに表示できる項目数の取得
  60.   #--------------------------------------------------------------------------
  61.   def page_item_max
  62.     return page_row_max
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● カーソルの矩形更新
  66.   #--------------------------------------------------------------------------
  67.   def update_cursor_rect
  68.     if @index < 0
  69.       self.cursor_rect.empty
  70.       return
  71.     end
  72.     # 現在の行を取得
  73.     row = @index
  74.     # 現在の行が、表示されている先頭の行より前の場合
  75.     if row < self.top_row
  76.       # 現在の行が先頭になるようにスクロール
  77.       self.top_row = row
  78.     end
  79.     # 現在の行が、表示されている最後尾の行より後ろの場合
  80.     if row > self.top_row + (self.page_row_max - 1)
  81.       # 現在の行が最後尾になるようにスクロール
  82.       self.top_row = row - (self.page_row_max - 1)
  83.     end
  84.     # カーソルの幅を計算
  85.     cursor_width = self.width - 4
  86.     # カーソルの座標を計算
  87.     y = @index * 80 - self.oy
  88.     # カーソルの矩形を更新
  89.     self.cursor_rect.set(0, y, cursor_width, 80)
  90.   end
  91. end
  92. end
复制代码
>tommay

嗯,謝謝您提供的腳本,不過感覺好像沒辦法直接拷過來用就是了(鞠躬)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
45
在线时间
47 小时
注册时间
2009-6-1
帖子
127
12
 楼主| 发表于 2009-8-6 09:31:04 | 只看该作者
昨天嚐試好幾次後,總算是把東西弄好了。

效果也還不錯,接下來作介面美化就好

(結帖)

TEST01.jpg (206.56 KB, 下载次数: 2)

TEST01.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-27 04:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表