设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1326|回复: 5
打印 上一主题 下一主题

[已经解决] 求bitmap内部方法的用法,我想做些诶图像效果

[复制链接]

Lv2.观梦者

梦石
0
星屑
687
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

跳转到指定楼层
1
发表于 2012-3-21 20:38:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
end
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
94 小时
注册时间
2012-3-15
帖子
89
2
发表于 2012-3-21 20:59:14 | 只看该作者
脚本->帮助->Bitmap

self指的仅仅是对象本身而已,和是不是bitmap其实好像没多大关系?{:nm_3:}
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
3
发表于 2012-3-22 08:51:30 | 只看该作者
self.xxx就是指调用现在正在执行的对象的xxx方法a...比如偶们常用的定义类方法和模块方法时就用的
  1. module XXX
  2. def self.xxx
  3. end
  4. end
复制代码
这里捕获的就是正在定义的Module对象,在实例方法中则捕获相应的实例对象...
好歹当年也当过大魔王过,orz
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3180
在线时间
3617 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2012-3-22 13:24:41 | 只看该作者
本帖最后由 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有些用处
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
687
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

5
 楼主| 发表于 2012-3-22 21:45:40 | 只看该作者
hys111111 发表于 2012-3-22 13:24
脚本选自:魔塔样板希望我的回答对LZ有些用处

比如说blt这个方法怎么用帮助里就没有具体格式。
不知道传入什么参数。
就是这种方法我想知道用法

点评

貌似bitmap好像不能用self 不过,blt和draw_text貌似用法一样  发表于 2012-3-22 21:53
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
94 小时
注册时间
2012-3-15
帖子
89
6
发表于 2012-3-23 06:37:10 | 只看该作者
帮助原文:

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|

点评

好吧,再问你一下,是不是在Bitmap类里面算的更快?因为我看到RGSS2的模糊用了很多循环啊,我记得在Game_picture中用循环来用bitmap的方法的话很慢啊  发表于 2012-3-24 20:22
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-30 07:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表