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

Project1

 找回密码
 注册会员
搜索
查看: 1887|回复: 3
打印 上一主题 下一主题

[已经解决] "获取项目的高度"的選取範圍不正確

[复制链接]

Lv1.梦旅人

梦石
0
星屑
129
在线时间
99 小时
注册时间
2012-11-7
帖子
36
跳转到指定楼层
1
发表于 2015-4-6 08:09:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
看著這系列改菜單的做
https://rpg.blue/thread-226400-1-1.html

例子上的人物是橫著擺的,我試著擺成直的,但是選取範圍怎麼改也改不成功@@
感覺好像是原本選取的範圍比較大的樣子

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取项目的高度
  3.   #--------------------------------------------------------------------------
  4.   def item_height
  5. #~     height - standard_padding * 2
  6.      return 122
  7.   end
  8.   #--------------------------------------------------------------------------


我亂改成這樣讓頁面符合我想要的高度(頁面可以放4個角色欄)
但原本那行怎麼看也看不明白@@
想請問這邊應該怎麼改才是正確的,謝謝!

Lv1.梦旅人

梦石
0
星屑
129
在线时间
99 小时
注册时间
2012-11-7
帖子
36
4
 楼主| 发表于 2015-4-6 23:19:29 | 只看该作者
雖然不太明白為什麼,貌似是完全搞錯參數…
之後重新弄了一個就可以了
數值臉圖什麼的得重新排位置就是了
  1. #==============================================================================
  2. # ■ Window_MenuStatus
  3. #------------------------------------------------------------------------------
  4. #  菜單畫面中,顯示隊伍成員狀態的窗口
  5. #==============================================================================

  6. class Window_MenuStatus < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 定義實例變量
  9.   #--------------------------------------------------------------------------
  10.   attr_reader   :pending_index            # 保留位置(整隊用)
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化對象
  13.   #--------------------------------------------------------------------------
  14.   def initialize(x, y)
  15.     super(0, 48,200,  Graphics.height-48)
  16.     @pending_index = -1
  17.     refresh
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 獲取窗口的寬度
  21.   #--------------------------------------------------------------------------
  22.   def window_width
  23.     Graphics.width-600
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 獲取窗口的高度
  27.   #--------------------------------------------------------------------------
  28.   def window_height
  29.     Graphics.height-48
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 獲取項目數
  33.   #--------------------------------------------------------------------------
  34.   def item_max
  35.     $game_party.members.size
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 獲取項目的高度
  39.   #--------------------------------------------------------------------------
  40.   def item_height
  41.     (height - standard_padding * 2) / 4
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 繪制項目
  45.   #--------------------------------------------------------------------------
  46.   def draw_item(index)
  47.     actor = $game_party.members[index]
  48.     enabled = $game_party.battle_members.include?(actor)
  49.     rect = item_rect(index)
  50.     draw_item_background(index)
  51.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  52.     draw_actor_simple_status(actor, rect.x + 0, rect.y + line_height / 2)
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 繪制項目的背景
  56.   #--------------------------------------------------------------------------
  57.   def draw_item_background(index)
  58.     if index == @pending_index
  59.       contents.fill_rect(item_rect(index), pending_color)
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 按下確定鍵時的處理
  64.   #--------------------------------------------------------------------------
  65.   def process_ok
  66.     super
  67.     $game_party.menu_actor = $game_party.members[index]
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 返回上一個選擇的位置
  71.   #--------------------------------------------------------------------------
  72.   def select_last
  73.     select($game_party.menu_actor.index || 0)
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 設置保留位置(整隊用)
  77.   #--------------------------------------------------------------------------
  78.   def pending_index=(index)
  79.     last_pending_index = @pending_index
  80.     @pending_index = index
  81.     redraw_item(@pending_index)
  82.     redraw_item(last_pending_index)
  83.   end
  84. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
129
在线时间
99 小时
注册时间
2012-11-7
帖子
36
3
 楼主| 发表于 2015-4-6 16:18:37 | 只看该作者
成功改成可以選直式的了,謝謝!
不過不知道改到什麼,明明隊伍有4個人,畫面上卻變成只顯示第一個隊員@@
(其他人還是可以選擇,只是名字啊血量啊什麼的都空白)
是因為把臉圖改成行走圖少了enabled這個參數嗎?(看不懂@@)
  1. #==============================================================================
  2. # ■ Window_MenuStatus
  3. #------------------------------------------------------------------------------
  4. #  菜單畫面中,顯示隊伍成員狀態的窗口
  5. #==============================================================================

  6. class Window_MenuStatus < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 定義實例變量
  9.   #--------------------------------------------------------------------------
  10.   attr_reader   :pending_index            # 保留位置(整隊用)
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化對象
  13.   #--------------------------------------------------------------------------
  14.   def initialize(x, y)
  15.     super(x, y,window_width, window_height)
  16.     @pending_index = -1
  17.     refresh
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 獲取窗口的寬度
  21.   #--------------------------------------------------------------------------
  22.   def window_width
  23.      Graphics.width-600
  24.   end  
  25.   #--------------------------------------------------------------------------
  26.   # ● 獲取窗口的高度
  27.   #--------------------------------------------------------------------------
  28.   def window_height
  29.     Graphics.height-56
  30.   end
  31.   
  32.   #--------------------------------------------------------------------------
  33.   # ● 计算窗口内容的宽度
  34.   #--------------------------------------------------------------------------
  35.   def contents_width
  36. #~     (item_width + spacing) * item_max - spacin
  37.     item_width
  38.   end
  39.     #--------------------------------------------------------------------------
  40.   # ● 计算窗口内容的宽度
  41.   #--------------------------------------------------------------------------
  42.   def contents_height
  43.     item_height
  44. #~     (item_height + spacing) * item_max - spacin
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 获取列数
  48.   #--------------------------------------------------------------------------
  49.   def rol_max
  50.     return 4 #跟据分辨率的不同可以改
  51.   end
  52. #--------------------------------------------------------------------------
  53.   # ● 获取项目数
  54.   #--------------------------------------------------------------------------
  55.   def item_max
  56.     $game_party.members.size
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取项目的高度
  60.   #--------------------------------------------------------------------------
  61.   def item_height
  62. #~     height - standard_padding * 2
  63.     (height - standard_padding * 2 + spacing) /rol_max - spacing
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 获取项目的宽度
  67.   #--------------------------------------------------------------------------
  68.   def item_width
  69. #~     (width - standard_padding * 2 + spacing) /col_max - spacing
  70.     width - standard_padding * 2

  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 获取行间距的宽度
  74.   #--------------------------------------------------------------------------
  75.   def spacing
  76.     return 0
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 绘制项目
  80.   #--------------------------------------------------------------------------
  81.   def draw_item(index)
  82.     actor = $game_party.members[index]
  83.     enabled = $game_party.battle_members.include?(actor)
  84.     rect = item_rect(index)
  85.     draw_item_background(index)
  86. #~      draw_actor_face(actor, rect.x, rect.y, enabled)
  87.     draw_actor_graphic(actor, rect.x+20, rect.y-24)#行走圖
  88.     draw_actor_name(actor,rect.x, rect.y)
  89.     draw_actor_class(actor,rect.x+120, rect.y)#職業改成靠右
  90.     draw_actor_icons(actor,rect.x,rect.y+line_height*1)#狀態圖
  91.     draw_actor_hp(actor,rect.x+48, rect.y+line_height*2)
  92.     draw_actor_mp(actor,rect.x+48,rect.y+line_height*3)
  93.     draw_actor_tp(actor,rect.x+48,rect.y+line_height*4)
  94.     draw_actor_level(actor,rect.x, rect.y+line_height*5)#加上經驗條 EXP?
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 繪制項目的背景
  98.   #--------------------------------------------------------------------------
  99.   def draw_item_background(index)
  100.     if index == @pending_index
  101.       contents.fill_rect(item_rect(index), pending_color)
  102.     end
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 按下確定鍵時的處理
  106.   #--------------------------------------------------------------------------
  107.   def process_ok
  108.     super
  109.     $game_party.menu_actor = $game_party.members[index]
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 返回上一個選擇的位置
  113.   #--------------------------------------------------------------------------
  114.   def select_last
  115.     select($game_party.menu_actor.index || 0)
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 設置保留位置(整隊用)
  119.   #--------------------------------------------------------------------------
  120.   def pending_index=(index)
  121.     last_pending_index = @pending_index
  122.     @pending_index = index
  123.     redraw_item(@pending_index)
  124.     redraw_item(last_pending_index)
  125.   end
  126. end
复制代码
ps.我不確定問A改A成功後出現B問題該發新帖還是要連帖繼續問??@@
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-4-6 08:18:50 | 只看该作者
item_height 这个方法不需要也不应该改。

要竖排的话,重定义行数列数(item_max, col_max, rol_max)和窗口大小(window_height, window_width)等一些方法就好了。

点评

謝謝!  发表于 2015-4-6 16:22

评分

参与人数 1星屑 +200 收起 理由
VIPArcher + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 00:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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