`

蒙娜丽莎的微笑 Ruby实现

阅读更多

这个挺有意思:Ruby 的 UI 库向来不怎么样,所以这里用的 Gosu 这个2d游戏引擎(其实是包装了Gosu 的 Chingu),顺便加了点料。

[代码] mona_lisa.rb

01 #!/usr/bin/env ruby
02 require "chingu"
03  
04 include Gosu
05 include Chingu
06  
07 class MonaLisa < Chingu::Window
08   def initialize
09     super(600550false)
10     self.input = {:esc => :exit}
11     push_game_state(Paint)
12   end
13 end
14  
15 class Pix < Chingu::GameObject
16   traits :velocity
17   def initialize(options)
18     super(options)
19   end
20  
21   def drop
22     if rand(2) == 0
23       @velocity_x = rand(0..2)
24     else
25       @velocity_x = -rand(0..2)
26     end
27     @velocity_y = rand(0..3)
28     @acceleration_y 1
29   end
30  
31   def setup
32     @image = Image["rect.png"]
33   end
34 end
35  
36 class Paint < Chingu::GameState
37  
38   def initialize
39     @ground_y $window.height+20
40     super
41   end
42  
43   def setup
44     super
45     IO.readlines("media/ml").each do |line|
46       arr = line.chomp.split("x")
47       x = arr[0].to_i
48       y = arr[1].to_i
49       w = arr[2].to_i
50       h = arr[3].to_i
51       r = arr[4][0...2].to_i(16)
52       g = arr[4][2...4].to_i(16)
53       b = arr[4][4...6].to_i(16)
54

      pix = Pix.create(:x => x, :y => y, :width => w, :height=> h,

 :color => Color.argb(255, r, g, b))

55     end
56     self.input = { :space => :drop }
57   end
58  
59   def drop
60     Pix.each { |pix| pix.drop }
61   end
62  
63   def update
64     Pix.each do |p|
65       if p.y >= @ground_y
66         slower = p.velocity_y / 3
67         p.velocity_y = -(slower + rand(slower))
68         if rand(2) == 0
69           p.velocity_x = rand(0.4)
70           p.acceleration_x = -(rand(0.05))
71         else
72           p.velocity_x = -rand(0.4)
73           p.acceleration_x = (rand(0.05))
74         end
75       end
76     end
77     super
78   end
79 end
80  
81 MonaLisa.new.show
2
0
分享到:
评论

相关推荐

    纯代码实现蒙娜丽莎的微笑

    使用html实现的蒙娜丽莎的微笑,可以用来学习的例子。适用于各种热爱编程的人员参考。

    纯css蒙娜丽莎的微笑

    本项目“纯css蒙娜丽莎的微笑”是一个令人惊叹的实例,展示了CSS3的强大潜力,尤其是其盒阴影(box-shadow)属性的应用。这个作品完全通过CSS代码绘制了5000多个点,巧妙地组合成蒙娜丽莎那神秘的微笑,重现了文艺...

    七年级语文上:第18课《蒙娜丽莎微笑揭秘》同步练习(鄂教版).doc

    《蒙娜丽莎微笑揭秘》同步练习主要涵盖了语文学习中的字词注音、词语解释、文学常识、课文内容理解和分析等方面的知识点。这篇练习旨在帮助七年级学生深入理解课文《蒙娜丽莎微笑揭秘》,提升语文素养。 1. 字词...

    鄂教版七年级上语文:第18课《蒙娜丽莎微笑揭秘》同步练习精选.doc

    《蒙娜丽莎微笑揭秘》同步练习精选的内容涵盖了对著名画家达·芬奇名画《蒙娜丽莎》的理解和探讨。这篇语文练习主要涉及以下几个知识点: 1. 文化艺术:《蒙娜丽莎》是意大利艺术大师莱昂纳多·达·芬奇的代表作,...

    蒙娜丽莎的微笑作文.doc

    《蒙娜丽莎的微笑》不仅是一幅世界著名的画作,也是本文中探讨的主题。文章通过一部名为《蒙娜丽莎》的电影,引出20世纪50年代美国卫斯理女子学院的一场思想冲突。女教师凯瑟琳·沃森试图打破传统观念的束缚,鼓励...

    蒙娜丽莎的微笑PaintMonaLisaSmile.zip

    同时,为了实现蒙娜丽莎的微笑效果,他们可能运用了图像滤波技术,如高斯模糊,来创造柔和的过渡效果,以及边缘检测算法,如Canny算法,来描绘出画像的轮廓。 在开源项目“Paint Mona Lisa Smile”中,我们还能看到...

    《蒙娜丽莎》的神秘微笑之谜.ppt

    当人们直视蒙娜丽莎的嘴巴时,中央视觉可能无法捕捉到微笑的微妙变化,而当我们稍微偏离视线,利用外围视觉观察时,微笑在视觉边缘反而变得更加明显。因此,这种差异体验并非源于画中人物的表情变化,而是我们视觉...

    纯CSS3实现的蒙娜丽莎画像

    没错,今天我们要分享的就是这个使用纯CSS3,没有使用任何图片的蒙娜丽莎画像,实现原理是利用CSS3的阴影特性,逐层用不同的颜色渲染,从而形成这幅蒙娜丽莎巨作,当然有点模糊是肯定的,毕竟是通过投影渲染的,...

    (2020年秋季版)七年级道德与法治下册 第一单元 人与人之间 第三课 交往有艺术 精品阅读 蒙娜丽莎的微笑素材 教科版.doc

    《蒙娜丽莎》的微笑被描述为既宁静又神秘,能够随着观察者的情绪和心境变化而产生不同的解读,这是它艺术魅力的核心所在。 首先,艺术的魅力在于其主观性和多元性。人们对于《蒙娜丽莎》微笑的理解因人而异,反映出...

    蒙娜丽莎-002918-深度:产品力、渠道及成本管控优异的瓷砖行业龙头.rar

    此外,通过技术创新,蒙娜丽莎还实现了瓷砖生产过程中的节能减排,提升了产品的附加价值。 其次,强大的销售渠道是企业扩大市场份额的关键。蒙娜丽莎建立了多元化、广泛的销售网络,包括线下专卖店、大型家居卖场、...

    27蒙娜丽莎之约PPT1(2).ppt

    文章首先介绍了这幅画的历史背景,接着详细描绘了蒙娜丽莎的肖像特点,最后探讨了其“神秘的微笑”所引发的多种解读。 文章的主要内容分为三个部分:首先,引入了参观《蒙娜丽莎》的情境,强调了人们对这幅画的向往...

    2018版高中语文第三单元感受艺术魅力7蒙娜丽莎的魅力课后作业鲁人版必修2

    这部分内容首先提到了“瑶公特”(即蒙娜丽莎)微笑的神秘性和捉摸不定,指出这种微笑与东方艺术的无穷和不定相契合,如中国诗画中的意境。接着,对比了达·芬奇与波提切利等艺术家的区别,强调达·芬奇在表现人物...

    蒙娜丽莎之约PPT学习教案.pptx

    此外,据法国巴黎卢浮宫的研究,蒙娜丽莎的微笑包含了高兴、厌恶、恐惧和愤怒等复杂情感的混合,这是通过现代技术——情感识别软件分析得出的结论,再次证实了这微笑的丰富性和多变性。这幅画作不仅是视觉艺术的杰作...

    浙江省温州市瓯海区实验八年级历史与社会下册《蒙娜丽莎的微笑、教皇奶牛的解放》教案 人教版.doc

    浙江省温州市瓯海区实验八年级历史与社会下册《蒙娜丽莎的微笑、教皇奶牛的解放》教案 人教版.doc

    蒙娜丽莎之约.doc

    同时,通过朗读和讨论,学生不仅能更深入地理解《蒙娜丽莎》的神秘微笑,还能学习到如何在写作中运用类似的技巧。 总结,该教学设计以《蒙娜丽莎之约》为载体,旨在培养学生的阅读理解能力、审美感知力和写作技巧,...

    27蒙娜丽莎之约.pptx

    《蒙娜丽莎》是世界艺术史上的一颗璀璨明珠,它的独特之处在于那神秘而引人入胜的微笑。 首先,文章提到了《蒙娜丽莎》的尺寸并不大,大约三英尺长、两英尺宽,但其影响力却远远超出了物理尺寸。在接近这幅画的过程...

    蒙娜丽莎:首次公开发行股票并上市招股说明书.PDF

    蒙娜丽莎:首次公开发行股票并上市招股说明书.PDF

    蒙娜丽莎-002918-B端C端均衡发展,产能优势持续加码.pdf

    2020年,蒙娜丽莎实现营业收入48.64亿元,年复合增长率(CAGR)为22.48%,归母净利润达到5.66亿元,CAGR为39.47%。2021年前三季度,公司营业收入和归母净利润分别同比增长47.69%和10.07%,显示出强劲的增长势头。 ...

Global site tag (gtag.js) - Google Analytics