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

Project1

 找回密码
 注册会员
搜索

請問怎麼作出這樣的MENU呢?

查看数: 3025 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-7-30 20:33

正文摘要:

本帖最后由 WildDagger 于 2009-8-8 22:07 编辑 嗯,問題很簡單,就是希望能作出這樣的界面 其實我很怕的是腳本衝突...... 目前使用的腳本自己認為會動到Scene_Menu和Window_MenuStatus KGC-多人隊伍 由於 ...

回复

WildDagger 发表于 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

嗯,謝謝您提供的腳本,不過感覺好像沒辦法直接拷過來用就是了(鞠躬)
tommay 发表于 2009-8-5 13:50:00
本帖最后由 tommay 于 2009-8-5 13:55 编辑

光标的描绘是由Window_Selectable中的update_cursor_rect方法定义的。恰巧在Window_MenuStatus中又重新定义了此方法,所以可以尝试在这儿修改。
大致写了一下(坐标可以再细调):
  1.   def update_cursor_rect
  2.     if @index < 0
  3.       self.cursor_rect.empty
  4.     else
  5.       x = 300 - @index * 60
  6.       self.cursor_rect.set(x, @index * 116, 200, 96)
  7.     end
  8.   end
复制代码
另外鼓励LZ有想法能自己动手实践
TLF 发表于 2009-8-5 10:21:37
好有爱的界面啊.......期待............
azuredam 发表于 2009-8-5 09:21:20
提示: 作者被禁止或删除 内容自动屏蔽
风雪优游 发表于 2009-8-5 00:48:13
我觉得你画的挺好的,想不想就用铅笔画做个简笔的游戏。菜单和角色还有地图都是铅笔画的
WildDagger 发表于 2009-8-4 22:15:47
本帖最后由 WildDagger 于 2009-8-4 22:38 编辑

自推一下......

也許和軒轅劍很像吧,不過我要的感覺好像也不太一樣。

另外,我在主站唯一找到的漢之雲選單檔案已經找不到了。
ACMREN 发表于 2009-8-1 16:18:19
这..   是类似轩辕剑的菜单?   具体范例可到主站搜索……
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-7-18 13:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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