您的位置:首页 > 编程语言

编程模拟自然(四):粒子系统

2016-01-06 13:33 134 查看

  昔者羿请毋死之药于西王母,羿妻姮娥窃服之以奔月,为月精也。后世传毋死之药实为粒子系统,嫦娥用它创造了云雾,这才腾云驾雾到了月宫。

  “去,把你家长叫来。”

  元本想找嫦娥要个说法,却不想不能进入广寒宫百丈之内。

第一章 第零章去哪了

  “你妈呢,怎么就你出来了?”

  “娘说她出不来宫殿,不过让我把这东西给你,算作毁掉树的补偿。”无名儿回答道。

  “什么东西?”

  “娘说这是粒子系统,对先生一定有用。”

  “好,东西我收下,也算原谅你了。”抬眼看到宫殿上方森冷的三个字,元突然不想在这里再待一刻。

  大人们似乎都被困在某个地方不能脱身,桂林中砍树的男子和这宫中的仙子就是如此,自己又何尝不是呢,只是...元突然想起了无名儿,或许没有什么能困住一个小孩吧。

  ......

  “先生那棵树真是你种的吗?”无名儿跟了上来。

  “当然,我可是至高无上的神,种树还不是小...”

  “你妈有告诉你粒子系统怎么用吗?”

第二章 成长在于积累

  “娘说不积跬步无以至千里,不积小流无以成江海。”

  “量变是质变的必要准备,量变发展到一定的程度时....”元一边作着自己的理解。

粒子数目:300,呈放射状喷射

Imports System.Numerics
Imports Windows.UI
''' <summary>
''' 粒子类,表示一个拥有加速度、加速度和位置矢量的抽象粒子
''' </summary>
Public Class Walker
Public ParentSpace As BaseSpace '粒子父空间
Public Property Location As Vector2 '位置矢量
Public Property Velocity As Vector2 '速度
Public Property Acceleration As Vector2 '加速度
Public Property Mass As Single = 10.0 '质量大小
Public Property Age As Single = 0 '生命周期
Public Property ImageSize As Single = 1 '粒子图像的大小
Public Property myColor As Color '粒子颜色
Dim Rnd As New Random
''' <summary>
''' 初始化一个粒子
''' </summary>
''' <param name="nSpace">粒子父空间,该空间初始化所有粒子</param>
''' <param name="LocationX">粒子初始坐标X分量</param>
''' <param name="LocationY">粒子初始坐标Y分量</param>
Public Sub New(ByVal nSpace As BaseSpace, ByVal LocationX As Single, ByVal LocationY As Single)
ParentSpace = nSpace
Location = New Vector2(LocationX, LocationY)
Velocity = New Vector2(0, 0)
Acceleration = New Vector2(0, 0)
End Sub
''' <summary>
''' 更新粒子位置,重绘每帧图像前调用该方法
''' </summary>
Public Sub Move()
Velocity += Acceleration '更新速度
Velocity.LimitMag(5) '粒子限速
Location += Velocity '更新位置
End Sub
End Class


View Code

后记

  ......两日后。

  “先生快跑啊,天狗来食月啦!”无名儿大喊道。

  “别怕,让我与它会会。”

  “汪汪...呜...汪...”

  “汪汪汪...哇呜...”

  半小时后…

  “先生你会和天狗交流诶!”无名儿眼睛里冒着小星星。

  “学着点,和狗类有共同语言可是程序猿的必备技能。”

预知前情,请看上回分解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: