XInCheng
一万年太久,只争朝夕
XInCheng
Processing_星际穿越

 

为了更好的学习processing语言的使用,在看了丹尼尔希夫曼的 Star field 后,我决定依葫芦画瓢也做一个,这是效果:

 

在这之前,先给出一些容易忘掉的东西:

processing中,定义一个类可以如下:

其余小知识:

在画框里,给定800个星星,每个星星都是一个实例对象,我们可以用有800个元素的数组来完成:

我们可以预先设定一个由鼠标位置决定的速度值:

对每一个星星对象,我们给定了它的x、y值和一个关于星星大小与移动速度的参变量z,每个x、y、z的初始值都是随机的,如下:

z值的大小每次减少speed个大小,当z减小到1时,可以肯定的判断星星已经飞过画框边界,此时将x、y、z重置,为了使每个星星出现的时候都非常小,z重置的时候都设为width/2。在Star类里,定义show()函数来完成每个星星的动作,局部变量sx、sy、r来储存星星的位置与大小,px、py来储存上一个位置,用以在两者之间画线。

sx的值与每一帧z的值相关,z越小,x越大,用map()函数将x/z的值从0-1映射到0-width/2,负值也是可以的。sy、r、px、py的值同理:

【这里的map()函数与python中的不一样】

星际穿越的全部代码:

 

知道了类也可以看作是一种数据,可以用数组的形式创造出大量属性相同的、行为无关的对象。

赞赏

发表评论

textsms
account_circle
email

XInCheng

Processing_星际穿越
  为了更好的学习processing语言的使用,在看了丹尼尔希夫曼的 Star field 后,我决定依葫芦画瓢也做一个,这是效果: http://v.youku.com/v_show/id_XMzU4MTIzODU3Ng==.html?s…
扫描二维码继续阅读
2018-05-02