Project1

标题: 脚本描绘问题 [打印本页]

作者: kvkv97    时间: 2013-12-28 10:59
标题: 脚本描绘问题
本帖最后由 hys111111 于 2013-12-28 14:23 编辑
  1. #--------------------------------------------------------------------------
  2.   # ● 图形的描绘
  3.   #     actor : 角色
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #--------------------------------------------------------------------------
  7.   def draw_actor_graphic(actor, x, y)
  8.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  9.     cw = bitmap.width / 4
  10.     ch = bitmap.height / 4
  11.     src_rect = Rect.new(0, 0, cw, ch)
  12.     contents.blt(x - cw/2, y - ch  , bitmap, src_rect)
复制代码
1,character_name是RPG::Actor类的属性,Window_Base类里面的局部变量actor.后面怎么可以带它?
2,传送bitmap 的矩形 src_rect到该位图的座标(x,y),能说下怎么传送吗?位图的矩形是什么?
3,还有就是:
def draw_actor_name(actor,x,y)
    contents.font.color = normal_color
里面;font是Bitmap类的方法,color 是Font类的方法,可以调用;但是contents是Window类的方法(属性),怎么可以调用Bitmap类的方法font?
作者: 恐惧剑刃    时间: 2013-12-28 12:00
actor是作为参数获取character_name属性的!!!!
在使用时需传递“角色”参数(如 $game_acotrs[1]),故可以使用RPG::Actor的属性

传送矩形简单说就是把位图加载在一个矩形上

contents指的是self.contents
Window的属性,是窗口内容描绘的位图,初始化时已经 self.contents = Bitmap.new(width - 32, height - 32)
作者: myownroc    时间: 2013-12-28 12:04
1.Ruby语言是弱类型编程语言,Window_Base里的actor可以视为RPG::Actor类的一个实例。
2.怎么传送……这种问题还是问电脑吧;矩形就是矩形,每张图片不就是矩形吗?位图可以理解为容纳图片的一个容器,位图的矩形……就可以理解为这个容器。
3.你确定font不是contents的属性?
作者: 你最珍贵    时间: 2013-12-28 12:19
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 图形的描绘
  3.   #     actor : 角色
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #--------------------------------------------------------------------------
  7.   def draw_actor_graphic(actor, x, y)
  8.   #CY 定义名为draw_actor_graphic的方法。
  9.  
  10.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  11.   #CY 对RPG::Cache模块执行名为character的方法,该方法需要2个值。这两个值分别
  12.   #CY 是对actor类使用character_name方法(角色文件名)和对actor类使用character
  13.   #CY _hue(角色色相)。取得角色图像。然后将值赋给变量bitmap。
  14.   #CY character方法的定义请看RGSS参考——游戏库——RGSS内部类的RPG::Cache模块。
  15.   #CY 现在不需要你去记忆RPG::Cache模块的内容哦,了解下即可。
  16.  
  17.     cw = bitmap.width / 4   
  18.   #CY 对变量bitmap使用width(取得位图的宽)方法,并且将值除以4,然后赋给变量cw。
  19.   #CY bitmap的方法在RGSS参考——游戏库——RGSS内部类的Bitmap里面。
  20.  
  21.     ch = bitmap.height / 4
  22.   #CY 对变量bitmap使用height(取得位图的高)方法,并且将值除以4,然后赋给变量ch。  
  23.  
  24.   src_rect = Rect.new(0, 0, cw, ch)
  25.   #CY 新建Rect的实例,内部参数为(0, 0, cw, ch),并将该实例的值赋给变量src_rect。
  26.   #CY Rect的方法在RGSS参考——游戏库——RGSS内部类的Rect里面。
  27.   #CY 神马?你问我x和y的意思?继续抬头90°看141行的注释。。。
  28.  
  29.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  30.   #CY 对contents属性执行blt方法,并且执行它本身。
  31.   #CY 不懂?不动就对了!我还没给出附录呢,你怎么能懂呢!
  32.  
  33.   #CY contents属性:作为窗口内容显示的位图(Bitmap)。
  34.  
  35.   #CY blt(x, y, src_bitmap, src_rect[, opacity]) 方法:
  36.   #CY 传送 src_bitmap 的矩形 src_rect(Rect)到该位图的座标(x,y)。
  37.   #CY opacity 指定其不透明度,范围为 0 ~ 255。
  38.  
  39.   #CY contents属性在RGSS参考——游戏库——RGSS内部类的Window里。
  40.   #CY blt方法在RGSS参考——游戏库——RGSS内部类的Bitmap里。
  41.   end

作者: fux2    时间: 2013-12-28 19:42
myownroc 发表于 2013-12-28 12:04
1.Ruby语言是弱类型编程语言,Window_Base里的actor可以视为RPG::Actor类的一个实例。
2.怎么传送……这种 ...

actor是这个方法接收的一个参数,跟Window_Base没半毛钱关系- -
另外font就是Bitmap的属性,contents是个Bitmap而已。




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