查看: 2280|回复: 13

特殊光标的问题

  [复制链接]

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
发表于 2008-3-16 06:45:49 | 显示全部楼层 |阅读模式

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

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

×
将Window_Selectable里的index的宽度
   # 更新国标矩形
    self.cursor_rect.set(x, y, cursor_width, 32)
改为
   # 更新国标矩形
    self.cursor_rect.set(x, y, cursor_width, 64)
然后,选择光标变大了,
但是按上下左右的时候,光标矩形又不会合适
而且选择物品时也不生效。。。怎么办额?
版务信息:本贴由楼主自主结贴~

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-3-16 07:07:27 | 显示全部楼层
第一:你是說背景文字不適合?改變背景文字就可以了
第二:不會,你多疑了
第三:一般不要把Window_Selectable中的改變
可以在子類裏面調用
  #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(x, y, cursor_width, cursor_height)
    end
  end
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-16 07:21:46 | 显示全部楼层
我的意思是说
    if self.active and @item_max > 0 and @index >= 0
      # 方向键下被按下的情况下
      if Input.repeat?(Input::DOWN)
        # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
        # 或光标位置在(项目数-列数)之前的情况下
        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
           @index < @item_max - @column_max
          # 光标向下移动
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
      # 方向键上被按下的情况下
      if Input.repeat?(Input::UP)
        # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
        # 或光标位置在列之后的情况下
        if (@column_max == 1 and Input.trigger?(Input::UP)) or
           @index >= @column_max
          # 光标向上移动
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # 方向键右被按下的情况下
      if Input.repeat?(Input::RIGHT)
        # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
        if @column_max >= 2 and @index < @item_max - 1
          # 光标向右移动
          $game_system.se_play($data_system.cursor_se)
          @index += 1
        end
      end
      # 方向键左被按下的情况下
      if Input.repeat?(Input::LEFT)          # 列数为 2 以上并且、光标位置在 0 之后的情况下
        if @column_max >= 2 and @index > 0
          # 光标向左移动
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
        end

第一,我已经改好了物品的位置,
间距,原来的是
回复剂 :1    生命剂 :1
香水  :1
然后我改为
回复剂 :1    生命剂 :1
XXXXXXXXX
香水  :1
这样子
但是我移向香水时
光标切在XXXXXXX处显示,按下去会出现香水的使用
但是我把
# 方向键下被按下的情况下
      if Input.repeat?(Input::DOWN)
        # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
        # 或光标位置在(项目数-列数)之前的情况下
        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
           @index < @item_max - @column_max
          # 光标向下移动
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max - 2
        end
      end

@index = (@index + @column_max) % @item_max - 2
以后
光标会移动到香水这,,但是按下去无反映了!
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-3-16 08:09:24 | 显示全部楼层
回复剂 :1    生命剂 :1
香水  :1
然后我改为
回复剂 :1    生命剂 :1
XXXXXXXXX
香水  :1

這兩點就我看來沒有分別。除非你的XXXX是一樣東西,否則兩者是一樣的。當然會出錯。
因爲你移動到的只是「看上去」好像是香水的位置,但是實際上是香水以下的一件物品。
光標是按照物品list運作的,和顯示沒有關係。

如同我的最初回復,只要你按照裏面的設置添加就不會有錯。
按照你現在的思路是麻煩而容易出問題的。

PS,你需要調節的不是height值而是y值。
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
回帖
1385
发表于 2008-3-16 10:00:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-16 16:30:59 | 显示全部楼层
因为我的物品图标大了,变为48*48的了,所以间距要变大,否则第2排的东西
要把第一排的给覆盖住了。。。
怎么请问怎么计算?
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-16 16:35:19 | 显示全部楼层
  #--------------------------------------------------------------------------
  # ● 描绘项目
  #     index : 项目编号
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32 ==> index / 2 * 64

被我修改后的间距
然后光标怎么计算到这些物品的距离呢?
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-16 17:25:15 | 显示全部楼层
有没有办法改@itme_max的间距呢?
虽然物品距离为
A  :1   B  :1

C  :1   D  :1

E  :1   E  :1
但是移动到C,D时光标却在这
■ 代替 光标 (光标都在这三行)
A  :1   B  :1 ( ■■■  
■■■   ■■■ ( ■■■
C  :1   D  :1 ( ■■■

E  :1   E  :1
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-3-16 18:09:07 | 显示全部楼层
物品里光标移动的间距怎么样才能象查看角色状态时那样的向下移动的间距额?
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
回帖
1385
发表于 2008-3-16 19:12:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部