查看: 3050|回复: 11

关于对话中选择项的问题

  [复制链接]
梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
发表于 2009-2-7 01:54:26 | 显示全部楼层 |阅读模式

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

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

×
  
   为了要显示更多行数, 我使用了  http://rpg.blue/web/htm/news827.htm  续行符创建超长文章脚本, 之后选择项就会出现对不上号, 说不太清楚, 用图来表达一下.


   下面两张图,是不同行数时, 选择项的光柜显示在不同的位置?  这个要怎么解决?

   

   

   

   {/mg}
版务信息:本贴由楼主自主结贴~
十年磨一剑,蓦然回首,年华如水,青春如歌。
梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
回帖
705
发表于 2009-2-7 02:30:11 | 显示全部楼层
根据项目数判断光标初始坐标!
回复

使用道具 举报

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
 楼主| 发表于 2009-2-7 03:01:04 | 显示全部楼层

   这段脚本需要怎么修改?

  1. def update_cursor_rect
  2.    if @index >= 0
  3.      n = $game_temp.choice_start + @index
  4.      self.cursor_rect.set(8, n * 32, @cursor_width, 32)
  5.    else
  6.      self.cursor_rect.empty
  7.    end
  8. end
复制代码
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-7-28
回帖
363
发表于 2009-2-7 03:12:29 | 显示全部楼层
    好吧。。。问题出在n*32  这里的光标的Y坐标。。。。其他。。。LZ应该能想到方法解决了吧= =
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2009-2-7 03:39:05 | 显示全部楼层
以下引用hgfor于2009-2-6 19:01:04的发言:


  这段脚本需要怎么修改?

def update_cursor_rect
   if @index >= 0
     n = $game_temp.choice_start + @index
     self.cursor_rect.set(8, n * 32, @cursor_width, 32)
   else
     self.cursor_rect.empty
   end
end

     self.cursor_rect.set(8, n * 32, @cursor_width, 32)
这块,D一个是X坐标,D2个的“*”后面的树是Y坐标的变化量,后两个是那个框框的宽和高。。
LZ要改的大概是D2个“*”后面的数字吧。。。改小点看看。。。。
回复

使用道具 举报

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
 楼主| 发表于 2009-2-7 03:47:31 | 显示全部楼层
我修改的就是 “*”后面的数字, 如果我把数字减少点, 还是不能显示在正常的位置.


  def update_cursor_rect
    if @index >= 0
      n = $game_temp.choice_start + @index
      self.cursor_rect.set(0, n * 22 - 55, @cursor_width, 22)
    else
      self.cursor_rect.empty
    end
  end
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复

使用道具 举报

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
 楼主| 发表于 2009-2-7 18:22:13 | 显示全部楼层
感觉好像是因为修改了自动换行符引起的, 我的对话框中每行显示30个字之后用P来换行, 我不记得RM默认的是多少个字一行了.

n = $game_temp.choice_start + @index  这条语句可能是按照默认一行多少字来算的.

高手指点一下.
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复

使用道具 举报

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
 楼主| 发表于 2009-2-8 00:37:18 | 显示全部楼层
高手指点一下.
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2009-2-8 00:56:24 | 显示全部楼层
问题在此。
            $game_temp.choice_start = line_count(事件处理器3.40,脚本94)
这里单纯用默认行数来计算选择项的位置。
现在应该吧字符数加起来除以30加个1
要看你怎么算换行了,换行法则是怎么样的?
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
回帖
263
 楼主| 发表于 2009-2-8 03:13:17 | 显示全部楼层

  每30个字就用P来换行,  计算选择项位置是默认的脚本,要怎么修改?

  1. if c == "\p"
  2.           if centerflag == true
  3.             x = 520 - x
  4.             x = x / 2
  5.             self.contents.draw_text(x, 32 * y, 520-x, lineheight, a)
  6.           end
  7.           if rightflag == true
  8.             x = 520 - x
  9.             self.contents.draw_text(x, 32 * y, 520-x, lineheight, a)
  10.           end
  11.           if bannerflag == true
  12.             x = 520 - x
  13.             x = x / 2
  14.             self.contents.draw_text(x, 44, 520-x, lineheight, a)
  15.           end
  16.           a = ""
  17.           centerflag = false
  18.           rightflag = false
  19.           bannerflag = false
  20.           if y >= $game_temp.choice_start
  21.             @cursor_width = [@cursor_width, x].max
  22.           end
  23.           y += 1
  24.           x = 0
  25.          # if y >= $game_temp.choice_start
  26.          #   x = 0
  27.          # end
  28.           next
  29.        end
  30.         if centerflag == false && rightflag == false && bannerflag == false
  31.         # 控制字体间隔
  32.         self.contents.draw_text(1 + x, 20 * y, 40, lineheight, c)
  33.         x += self.contents.text_size(c).width
  34.       else
  35.         a += c
  36.         x += self.contents.text_size(c).width
  37.         end
  38.       end
复制代码
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部