Project1

标题: 求bitmap内部方法的用法,我想做些诶图像效果 [打印本页]

作者: end55rpg    时间: 2012-3-21 20:38
标题: 求bitmap内部方法的用法,我想做些诶图像效果
本帖最后由 end55rpg 于 2012-3-21 20:39 编辑

看过有些脚本里面有什么self.xxx这种bitmap内部的应用。
求用法,因为站上好像没教呈,我想做图形效果啊!

比如
class Bitmap
   
    def gradient_fill_rect(x, y, width, height, color1, color2,vertical = false,opacity = 255)
       #gradient_fill_rect(x坐标,y坐标,矩形宽,矩形高,颜色1,颜色2,横(竖)填充,不透明度)
      vertical == false ? step = width - x : step = height - y
      color = color1
      color.alpha = opacity
      key_re = Math.sqrt(((color2.red - color1.red)/step)**2)
      key_gr = Math.sqrt(((color2.green - color1.green)/step)**2)
      key_bl = Math.sqrt(((color2.blue - color1.blue)/step)**2)
      color2.red-color1.red>0 ? key_re=key_re : key_re= -key_re;color2.green-color1.green>0 ? key_gr=key_gr : key_gr= -key_gr;color2.blue-color1.blue > 0 ? key_bl=key_bl : key_bl= -key_bl
      
      if vertical == true
         for i in y..height
           self.fill_rect(x, y, width, 1, color)
           y=y+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
         end
      else
        for i in x..width
           self.fill_rect(x, y, 1, height, color)
           x=x+1;color.red =color.red + key_re;color.green =color.green + key_gr;color.blue =color.blue + key_bl
        end
    end
enddsu_plus_rewardpost_czw
作者: 阿良良木月火    时间: 2012-3-21 20:59
脚本->帮助->Bitmap

self指的仅仅是对象本身而已,和是不是bitmap其实好像没多大关系?{:nm_3:}
作者: zhangbanxian    时间: 2012-3-22 08:51
self.xxx就是指调用现在正在执行的对象的xxx方法a...比如偶们常用的定义类方法和模块方法时就用的
  1. module XXX
  2. def self.xxx
  3. end
  4. end
复制代码
这里捕获的就是正在定义的Module对象,在实例方法中则捕获相应的实例对象...
作者: hys111111    时间: 2012-3-22 13:24
本帖最后由 hys111111 于 2012-3-22 13:25 编辑

脚本选自:魔塔样板
  1. bitmap = RPG::Cache.icon("101-01")#黄钥匙)
  2. self.contents.blt(10, 280, bitmap, Rect.new(0, 0, 32, 32))  
复制代码
希望我的回答对LZ有些用处
作者: end55rpg    时间: 2012-3-22 21:45
hys111111 发表于 2012-3-22 13:24
脚本选自:魔塔样板希望我的回答对LZ有些用处

比如说blt这个方法怎么用帮助里就没有具体格式。
不知道传入什么参数。
就是这种方法我想知道用法
作者: 阿良良木月火    时间: 2012-3-23 06:37
帮助原文:

blt(x, y, src_bitmap, src_rect[, opacity])
传送 src_bitmap 的矩形 src_rect(Rect)到该位图的座标(x,y)。

opacity 指定其不透明度,范围为 0 ~ 255。

x,y-坐标
src_bitmap-图像
src_rect-矩形
方括号里的opacity是可以有也可以没有的参数

简单例子,默认脚本里描绘角色行走图定义:
  1. def draw_actor_graphic(actor, x, y)
  2.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  3.     cw = bitmap.width / 4
  4.     ch = bitmap.height / 4
  5.     src_rect = Rect.new(0, 0, cw, ch)
  6.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  7. end
复制代码
x,y就不多说了,这里面的bitmap就是上面的角色行走图,也就是参量“src_bitmap”
src_rect就是前面通过Rect.new画的矩形范围

其实帮助文件里这么写了再看看默认脚本里的实际例子不是挺清楚的么..|NM17|




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