Project1

标题: 脚本修改 [打印本页]

作者: 负零    时间: 2013-4-12 15:59
标题: 脚本修改
自己动手仿写的第一个脚本(目前还很短):
为什么会这样,请脚本大神解释原理(脚本在下面:我想显示draw_parameters的内容)
  1. class Window_Monster < Window_Base

  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对象
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super(0, 0, 544,  412)
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # ● 获取窗口的宽度
  10.   #--------------------------------------------------------------------------
  11.   def window_width
  12.     return 160
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 刷新
  16.   #--------------------------------------------------------------------------
  17.   def refresh
  18.     @actor=1
  19.     contents.clear
  20.     draw_parameters(100, 100)
  21.     open
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 打开窗口
  25.   #--------------------------------------------------------------------------
  26.   def open
  27.     refresh
  28.     super
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 关闭窗口
  32.   #--------------------------------------------------------------------------
  33.    def close
  34.      @closing = true unless close?
  35.      @opening = false
  36.      self
  37.    end
  38.   #--------------------------------------------------------------------------
  39.   # ● 能力値の描画
  40.   #--------------------------------------------------------------------------
  41.   def draw_parameters(x, y)
  42.      self.contents.font.size=16
  43.       draw_actor_param(@actor, x,     y                 ,2 )
  44.       draw_actor_param(@actor, x+72,  y                 ,3 )
  45.       
  46.       draw_actor_param(@actor, x,     y+line_height     ,4 )
  47.       draw_actor_param(@actor, x+72,  y+line_height     ,5 )
  48.          
  49.       draw_actor_param(@actor, x,     y+line_height*2   ,6 )
  50.       draw_actor_param(@actor, x+72,  y+line_height*2   ,7 )
  51.   end
  52. end
复制代码
  1. class Scene_Monster < Scene_MenuBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始处理
  4.   #--------------------------------------------------------------------------
  5.   def start
  6.     super
  7.     create_monster_window
  8.   end
  9.   #--------------------------------------------------------------------------
  10.   # ● 生成窗口
  11.   #--------------------------------------------------------------------------
  12.   def create_monster_window
  13.     @monster_window = Window_Monster.new
  14.     @monster_window.x =0
  15.     @monster_window.y = 0
  16.   end
  17.   
  18. end
复制代码

作者: 弗雷德    时间: 2013-4-12 16:37
LZ在refresh方法里调用draw_parameters(100, 100),赋予了X Y 值100
然后咱们回到draw_parameters这个方法里,draw_actor_param(@actor, x,     y+line_height     ,4 )这里的 @actor未代入过数据,是个空值nil,所以啥也不会描绘出来。



作者: j433463    时间: 2013-4-12 17:05
本帖最后由 j433463 于 2013-4-12 17:10 编辑

楼主的@actor代入过,不过代入的是 1,不是 actor,以为@actor是 id 吗?其实 id 只是@actor的一部份。

另外,默认画面大小是 544*416 不是 544*412,楼主有没有发觉窗口底还有一条缝?

我建议 544 改成 Graphics.width,412 改成 Graphics.height,这样不管分辨率多少,窗口总能最大化。
作者: 负零    时间: 2013-4-15 10:25
j433463 发表于 2013-4-12 17:05
楼主的@actor代入过,不过代入的是 1,不是 actor,以为@actor是 id 吗?其实 id 只是@actor的一部份。

...

抱歉,如果我显示
draw_parameters
的内容的话,请问如何修改上述两个代码?

作者: j433463    时间: 2013-4-15 17:24
@actor = actor

这样会是当下选择中的角色,或者

@actor = $game_actors[n]

n 是 @actor_id 也就是指定的角色 ID,譬如您要指定第一号角色,n 就是 1,这样会取得 1 号角色的完整资料,而不是只单纯的给 @actor 一个 1 的值
作者: 负零    时间: 2013-4-15 17:47
j433463 发表于 2013-4-15 17:24
@actor = actor

这样会是当下选择中的角色,或者

  我刚看了一下增加删除物品的处理 和这个原理是一样的,谢谢狮子大神,以后还请多多指导!




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