记得在WP7上玩一个游戏有段动画很有趣,是背景在进行昼夜交替,一会儿白天太阳出来白天了,一会儿月亮蹦出来夜晚了,在以前做C++程序的时候曾经实现过类似的效果,今天早上移植了一下到Silverlight当中效果还是不错,当然了,有了Blend神器,就完全不用通过代码的方式实现,真的方便了很多。

以前的效果预览:

由于条件所限定,本篇中实现的效果仅仅为一个引子,更细的细节,还需要自行制作,请注意,本篇的程序尺寸为600x400的标准。

为了方便起见,就不用Blend来画太阳和月亮了,直接使用了两张图片:

加入工程后,打开MainPage控件,添加两个Rectangle,分别来表示天空和海面:

上面的两个矩形都填充了渐变颜色,暂时表示一下。

添加月亮进来,移动到中间

下面是一个小的布局技巧,为了避免月亮随着布局而发生怪异的变化,把宽高定死,并且设定为绝对中间对齐

然后太阳也是这么添加到界面中,现在将海移动到前面来,为了在后面的动画中挡住太阳和月亮:

那么现在开始制作动画了,新建一个故事板动画,名字为ANI_Loop,然后为太阳和月亮添加关键帧,并且移动到海面之下:

现在把月亮移动上来,毕竟一天之际在于午夜时分么。

在2秒的地方添加一个关键帧,把月亮拉到海面以下:

下面就是把太阳升起来:

好了,现在形成一个交替循环,选择ANI_Loop把自动回放选上,把播放测试设为Forever

现在可以播放一下,看看是不是循环的出来下去呢,为了增加一些动感,我决定加一个缓冲效果,现在选择所有的帧,看好,可是所有帧哦。

选择Back的第三个缓冲效果。

现在播放起来看看,是否很有趣了呢,太阳和月亮真的就是“蹦”出来的,当然了,你可以尝试其余的缓冲效果,看看是否能形成更有趣的感觉。

不过大家肯定不会就此满意,因为这天空海面实在太丑了,而且太阳和月亮出来也没有变化,现在下面就开始完成这个问题:

现在把时间轴移动到开始,开始调天空和海面的颜色,大家可以依据自己的想法调整,直到自己满意,此时可以用月亮做参照。

同样,再将第2秒,即清晨的颜色调出来,此事不需要关闭动画,在Silverlight里Color是可以作为动画的的类型之一。

以及在最后一帧的白天设置出来。

有的时候你可能需要美术设计师的支持,才能得到最佳的表现效果,现在播放一下,看看是否不错呢,日月交替,昼夜交替,如果你想拉长时间,只需要把关键帧调整即可。

我们在下面加一下小细节,让整个的效果看起来更加真实:月亮的泛光、海面、小星星的制作

为了不产生混乱,现在将动画的编辑模式关闭,点击界面上方的小红色按钮关闭。

选择月亮,为它添加一个投影的Effect

参数设置如下:

月亮看起来更加真实了,而海面的话,需要一张海面的波纹图片,添加到海面的Rectangle的下面,并将海面的透明度降低:

关于星星的制作会用上另外一个Effect效果——模糊,画一个小圆圈,5x5就够了,然后添加模糊效果,将参数设置如下:

我在旁边放了一个小参照,看看是不是很像呢:)

当然了这些细节将会增加更多的设计和编码时间,例如白天星星是不会出现的、波纹只是不动肯定不会好看、甚至太阳和月亮的在海面上的投影,这些细节都决定这个场景的真实性,我相信各位能够做的更好。

最后不要忘记在构造函数中添加一个Begin,否则这个动画不会自动的运行。

本篇工程源代码下载地址如下:点击直接下载

本文转自nowpaper 51CTO博客,原文链接:http://blog.51cto.com/nowpaper/712755

Silverlight 游戏开发小技巧:昼夜交替动画相关推荐

  1. Silverlight 游戏开发小技巧:动感小菜单2

    Silverlight 游戏开发小技巧:动感小菜单2 动感小菜单其实是想模仿Apple的菜单按钮设计制作,但是画虎不成反类犬,看起来有点别扭,昨天各位园友提了这方面的建议,感觉太硬如果加入动画可能更好 ...

  2. Silverlight 游戏开发小技巧:轨迹跟随效果

    Silverlight 游戏开发小技巧:轨迹跟随效果 我们通常在游戏中有各种各样的粒子效果,其中有一种就是跟随鼠标发生的轨迹动画,在鼠标经过的地方会产生一些特效,这种方式我们在粒子当中经常使用,本篇使 ...

  3. Silverlight 游戏开发小技巧:扇形排列元素

    Silverlight 游戏开发小技巧:扇形排列元素 斗地主风靡了大江南北,在春晚都做免费性推广,棋牌游戏平台几乎将其作为标配,但是牌类游戏总是一成不变的样子--横向排列,如果扇形排列应该更加符合真实 ...

  4. 一起谈.NET技术,Silverlight 游戏开发小技巧:动感小菜单

    网页应用受限于自身的浏览器范畴,不能把华丽效果完全展示,正是因为如此,在网页上诞生了无数绚丽的设计,虽然动感程度和桌面应用无法比拟,但是在UI上却下足了功夫,用户体验可以说无以伦比,比如说小小的菜单, ...

  5. Silverlight 游戏开发小技巧:实现街霸4的选人界面

    Silverlight 游戏开发小技巧:实现街霸4的选人界面 上一篇只是一个引子,用来说明Projection的基本操作,游戏研发都是用这些小的基本功能慢慢组合出来,其实这一篇仍然是Projectio ...

  6. Silverlight 游戏开发小技巧:角色升级特效

    这次我们将使用Projection完成一些有趣的RPG游戏中常用的特效:升级和传送点特效,我们不需要请特效师制作复杂绚丽的特效,而是只需要他们提供关键的几张图片或者设计样式,如果了您有本领教会他们使用 ...

  7. Silverlight 游戏开发小技巧:星球大战字幕效果

    各位科幻迷可能对星球大战的字幕效果印象深刻,这个电影字幕表现手法曾经风靡大小美国影片,甚至超人影片和电视也曾经用此来做开场和结尾字幕,今天我就将这个效果在blend里面制作技巧告诉大家,下面是星球大战 ...

  8. 一起谈.NET技术,Silverlight 游戏开发小技巧:实现街霸4的选人界面

    上一篇只是一个引子,用来说明Projection的基本操作,游戏研发都是用这些小的基本功能慢慢组合出来,其实这一篇仍然是Projection,但是我们将会做一个比较复杂的应用使用silverlight ...

  9. Silverlight 游戏开发小技巧:技能冷却效果1(Cooldown)

    到目前为止,大家都非常推崇魔兽的技能冷却效果,就是这样的,我记得群里还对这个效果展开过探讨,其实实现起来并不难,关键是思路是否正确,这部分我得谢谢猪笨无罪,是他先想出的解决方案,他不愿意写博客,也就只 ...

最新文章

  1. 2021年大数据Flink(三十三):​​​​​​​Table与SQL相关概念
  2. centOS上安装redis
  3. 11、MySQL常见错误代码一览表
  4. numpy在折线图上添加取值_见识matplotlib:不常见的一面,折线图
  5. 张首晟:量子计算、人工智能与区块链
  6. iTextSharp应用,生成pdf
  7. 微服务go还是java,Java微服务 vs Go微服务,究竟谁更强!?
  8. Skywalking-10:Skywalking查询协议——GraphQL
  9. 关于游戏小说与学习知识的不同
  10. Dubbo :广播模式下Can't assign requested address问题
  11. 文件服务器与数据库服务器,文件服务器和数据库服务器
  12. 这个 WebKit 漏洞助力 Pwn2Own 冠军斩获5.5万美元赏金(详细分析)
  13. RTP载荷H264视频流
  14. abaqus 不收敛问题
  15. java EXCEL或WORD转PDF转图片(base64)
  16. vscode安装uweb_桌面应用|在Ubuntu中安装Visual Studio Code
  17. 半导体存储器(RAM和ROM)
  18. filebeat报错error pipeline/output.go:100 failed to connect to backoff(async(tcp://xx.xx.xx.xx:))...
  19. WiFi未来趋势如何?如何搭上物联网这条大船?
  20. html文本显示不完整,div css网页显示不完整的原因分析及解决方案

热门文章

  1. Java不支持创建范型数组分析
  2. Nginx 从入门到放弃(五)
  3. 使用appium时出现的问题
  4. 团队协调办公工具比较
  5. Ubuntu新版发布周期
  6. Zabbix监控之检测程序日志中错误发生的次数
  7. POJ 3660 Cow Contest (闭包传递)
  8. 内联函数inline的使用
  9. Q93:PLY文件对应图形法向量反向问题——以bunny10K为例
  10. 如何搭建企业数据平台