Project1

标题: 允许我问问题 [打印本页]

作者: kvkv97    时间: 2015-8-13 20:52
标题: 允许我问问题


  1.   def update
  2.     # 可以移动光标的情况下
  3.     if self.active #and @item_max > 0 and @index >= 0
  4.       # 方向键下被按下的情况下
  5.       if Input.repeat?(Input::DOWN)
  6.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  7.         # 或光标位置在(项目数-列数)之前的情况下
  8.        if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  9.            @index < @item_max - @column_max
  10.           # 光标向下移动
  11.           $game_system.se_play($data_system.cursor_se)
  12.           @index = (@index + 1) % @item_max
  13.         end  
  14.    end
  15. 问题1:Input.repeat?(Input::DOWN) 和Input.trigger?(Input::DOWN))有什么不同?
  16. 问题2:@index = (@index + 1) % @item_max中的@index是如何计算的?

  17.   def update_cursor_rect
  18.     # 光标位置不满 0 的情况下
  19.     if @index < 0
  20.       self.cursor_rect.empty
  21.       return
  22.     end
  23.     # 计算光标的宽度
  24.     cursor_width = self.width / @column_max - 32
  25.     # 计算光标坐标
  26.     x = @index % @column_max * (cursor_width + 32)
  27.     y = @index / @column_max * 32 - self.oy
  28.     # 更新光标矩形
  29.     self.cursor_rect.set(x, y, cursor_width, 32)
  30.   end
  31. 问题1:cursor_rect 是WINDOW的属性[光标的矩形],那么empty是什么类的属性或者方法?
复制代码

作者: kuerlulu    时间: 2015-8-13 20:59
1. 按住的情况下, repeat会每6帧(别问我怎么知道的)返回一个true, trigger只返回一次
2. %是取余, 5 % 3 = 2
3. empty是rect的方法, 相当于set(0, 0, 0, 0)【然而这个方法并没有在F1中提到真是..





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1