zoukankan      html  css  js  c++  java
  • 看到XNA的弹幕,于是也用SilverLight弄了个弹幕

          这两天在首页看到太多悲观的东西了,给大家来个有趣点的乐呵乐呵,改变下心情

          SilverLight的确是好东西,我把我们公司项目中的地图客户端用SilverLight改写之后,明细效果就是不一样,尤其是在回放轨迹的时候,那真叫平滑和稳定

          这个弹幕的生成其实很简单了,单发子弹的结构,其实是一个画布里面嵌入了一个圆, 其中分别对画布应用了角度转换,对圆应用了平移转换。 然后加入一个计时器,每秒钟执行若干次,每次都对角度增加7度(为啥使用7度?嘿嘿,那是为了防止射击死角的出现,随着度数增加,弹幕的缝隙会逐渐移动) 然后按下钮开始发射子弹,效果大家请看,子弹还是挺密集的哦。

          SilverLight似乎一个元素(UIELEMENT)只能应用一个转换。那么我需要两个转换怎么办呢?比如这里的子弹,既要发生平移,发射的角度也要变换。不过,一般来说我们习惯性会考虑通过三角函数之类来计算动画的起始点,来生成子弹的动画轨迹,不过我这里偷了个懒,直接在一个子画布上放一个子弹,这样就可以分别应用角度转换和平移转换了。而且算角度也容易极了,压根不用去管什么三角函数之类,平移动画也容易处理了,只要设置子弹的射程,而根本无需去计算什么坐标值之类的东西。 (不过这种做法只能用来做演示画面,这些子弹都打不死人,因为没办法做碰撞检测)

          //******

          改正:其实是可以应用多个转换的,今天才知道-____________-;

          有一个需要注意的地方是,生成了那么多子弹对象,当它们的动画结束之后,应该立刻将其从画布上移除。但是似乎没办法在动画板结束事件中取到那个子弹的对象,所以我只好将它放在一个字典里,动画完成后到字典里查出来,再移除。

         代码在此,具体效果见下面:P

         最后,大家各有各的烦恼,我本人不怕失业,找工作容易得很,对技术也有激情,工作上我是没啥问题,可是。。。我却怎么也找不到女朋友,看到我的同学们一个个为人父母,我心如刀绞。这时候,只有游戏或代码可以缓解心头的压力。我自己心态已经调整得不错了,相亲的事情也干过几次,或者收张好人卡,或者消失,再没音讯。没有一个剩女大人看得上我,怎一个惨字了得,唉。好了好了,请看Silverlight版弹幕,点击按钮开始发射子弹

  • 相关阅读:
    【LeetCode OJ】Remove Element
    【LeetCode OJ】Remove Duplicates from Sorted Array
    【LeetCode OJ】Swap Nodes in Pairs
    【LeetCode OJ】Merge Two Sorted Lists
    【LeetCode OJ】Remove Nth Node From End of List
    【LeetCode OJ】Two Sum
    【LeetCode OJ】Majority Element
    最长公共子序列问题
    php fopen与file_get_contents的区别
    PHP 技巧集合
  • 原文地址:https://www.cnblogs.com/ashei/p/1502066.html
Copyright © 2011-2022 走看看