- 累计送礼:
- 0 个
- 累计收礼:
- 0 个
TA的每日心情 | 开心 6 天前 |
---|
签到天数: 127 天 连续签到: 11 天 [LV.7]常住居民III

管理员
  
- VIP
- 6
- 卡币
- 11285
- OK点
- 16
- 推广点
- 0
- 同能卷
- 0
- 积分
- 14071


|
RUBY 代码 - class Color
- def hue
- r, g, b = self.red / 255, self.green / 255, self.blue / 255
- max = min = r
- if g > max then max = g else min = g end
- if b > max then max = b elsif b < min then min = b end
- return0if max == min
- vH = case max
- when r then(g - b) * 60 / (max - min)
- when g then(b - r) * 60 / (max - min) + 120
- when b then(r - g) * 60 / (max - min) + 240
- end
- if vH < 0then vH += 360elsif vH > 360then vH -= 360end
- vH
- end
- end
- class Bitmap
- def draw_scan0(colorA, colorB)
- self.set_pixel(0, 0, colorA)
- returnifself.width == 1
- self.set_pixel(0, self.width - 1, colorB)
- returnifself.width == 2
- hueA, hueB = colorA.hue, colorB.hue
- deltaHue = (hueB - hueA) / (self.width - 1)
- hue, pixel = hueA, Bitmap.new(1, 1)
- 1.upto(self.width - 2)do |i|
- pixel.set_pixel(0, 0, colorA)
- pixel.hue_change(hue += deltaHue)
- self.set_pixel(i, 0, pixel.get_pixel(0, 0))
- end
- pixel.dispose
- end
- end
- bitmap = Bitmap.new(640, 1)
- red = Color.new(255, 0, 0)
- blue = Color.new(0, 0, 255)
- count, t = 0, Time.now
- loopdo
- bitmap.draw_scan0(red, blue)
- breakifTime.now - t >= 1.0
- count += 1
- end
- print"Bitmap#draw_scan0 => #{count}次/秒"
- sprite = Sprite.new
- sprite.bitmap = bitmap
- sprite.y = 240
- sprite.zoom_y = 20
- loop{Graphics.update}
复制代码
本帖来自P1论坛作者RPGzh500223,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=489134 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |
|