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

Project1

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

特殊光标的问题

 关闭 [复制链接]

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
跳转到指定楼层
1
发表于 2008-3-16 06:45:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

2
发表于 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
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
3
 楼主| 发表于 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
以后
光标会移动到香水这,,但是按下去无反映了!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

4
发表于 2008-3-16 08:09:24 | 只看该作者
回复剂 :1    生命剂 :1
香水  :1
然后我改为
回复剂 :1    生命剂 :1
XXXXXXXXX
香水  :1

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

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

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

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
5
发表于 2008-3-16 10:00:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
6
 楼主| 发表于 2008-3-16 16:30:59 | 只看该作者
因为我的物品图标大了,变为48*48的了,所以间距要变大,否则第2排的东西
要把第一排的给覆盖住了。。。
怎么请问怎么计算?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
7
 楼主| 发表于 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

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

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
8
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
9
 楼主| 发表于 2008-3-16 18:09:07 | 只看该作者
物品里光标移动的间距怎么样才能象查看角色状态时那样的向下移动的间距额?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
10
发表于 2008-3-16 19:12:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-24 02:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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