| 赞 | 274 |
| VIP | |
| 好人卡 | |
| 积分 | 496 |
| 经验 | |
| 最后登录 | 2024-6-21 |
| 在线时间 | 1919 小时 |
- 梦石
- 10
- 星屑
- 39550
- 在线时间
- 1919 小时
- 注册时间
- 2010-11-14
- 回帖
- 3214

|
发表于 2019-10-5 18:14:42
|
显示全部楼层
本帖最后由 KB.Driver 于 2019-10-6 02:08 编辑
[pre lang="ruby"]
$calendar99 ||= {}
$calendar99[:Bitmap] = $calendar99["Bitmap"] = 20190302
class Bitmap
DEFAULT_COLOR = Color.new(77,88,99)
def para_blt(src_bitmap, src_rect, color = DEFAULT_COLOR, color2 = nil)
self.width.times do |x|
self.height.times do |y|
next unless get_pixel(x, y) == color
x2 = src_rect.x + x ; y2 = src_rect.y + y
src_color = src_bitmap.get_pixel(x2, y2)
next if color2 && src_color == color2
set_pixel(x, y, src_color)
end
end
end
def para_blt_r(src_bitmap, color = DEFAULT_COLOR, differ = 0)
self.width.times do |x|
self.height.times do |y|
next unless get_pixel(x, y).difference(color) <= differ
src_bitmap.set_pixel(x, y, get_pixel(x, y) )
end
end
end
end[/pre]
[pre lang="ruby"]module Math
def self.mDistance(x1, y1, z1, x2, y2, z2)
(x1 - x2).abs + (y1 - y2).abs + (z1 - z2).abs
end
end
class Color
def difference(other_color)
(Math.mDistance3D(self.red, self.green, self.blue,
other_color.red, other_color.green, other_color.blue) +
self.alpha - other_color.alpha) / 4
end
end[/pre]
[pre lang="ruby"]Cache = RPG::Cache
Sprite = RPG::Sprite
def rgss_stop
loop{ Graphics.update }
end[/pre]
para_back.png
para_item.png
[fold=Take 1]
[pre lang="ruby"]# Take 1
src_bitmap = Cache.picture("para_item")
sprite = Sprite.new
sprite.bitmap = Bitmap.new("Graphics/Pictures/para_back")
sprite.bitmap.para_blt(src_bitmap, src_bitmap.rect)
rgss_stop
[/pre]
[/fold]
[fold=Take 2]
[pre lang="ruby"]# Take 2
src_bitmap = Cache.picture("para_item")
sprite = Sprite.new
sprite.bitmap = Bitmap.new(640, 480)
src_bitmap.para_blt_r(sprite.bitmap, Color.new(255, 244, 198), 50)
rgss_stop[/pre]
[/fold]
[fold=Take 3]
[pre lang="ruby"]# Take 3
src_bitmap = Cache.picture("para_item")
back_bitmap = Cache.picture("para_back")
test_bitmap = Bitmap.new(640, 480)
back_bitmap.para_blt_r(test_bitmap, Color.new(255,255,255,0))
back_bitmap.para_blt_r(test_bitmap, Color.new(77,88,99,0))
test_bitmap.para_blt(src_bitmap, src_bitmap.rect, Color.new(255,255,255,0))
test_bitmap.para_blt(src_bitmap, src_bitmap.rect, Color.new(77, 88, 99, 0))
sprite = Sprite.new
sprite.bitmap = test_bitmap[/pre]
[/fold]
|
评分
-
查看全部评分
|