Nowpaper 十五英寸的世界

Rich Games Developer

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

     前面的Flyer01说过,用Silverlight开发游戏可以通过代码方式和Blend开发工具完成,Blend的视图开发环境和Flash的很像,但是更加强调是程序结合,从不怎么明显的动画轴就知道,而Silverlight也不是和Flash一样离开了开发工具就完全不能开发,我打算通过这个简陋的例子让朋友知道,如何只用代码的方式开发一个Silverlight游戏。

     一,需要一个环境,这个可以在这篇中找到答案Silverlight C# 游戏开发:Silverlight开发环境

     二,建立一个Silverlight工程,然后开始编写代码:)

 

     第一开始,我们需要一个窗口来呈现整个游戏的内容,那么我需要在XAML中添加如下代码:

     上面的意义是,在一个空间为400x400中加入一个画布,背景颜色为蓝色,至于这方面内容参看这个Silverlight C# 游戏开发:关于精灵for Silverlight容器

现在,在工程里添加一个类,如果你喜欢直接添加代码文件也不错,我这个人比较懒,自动的爽些

     写如下代码,其意义是一个继承自Canvas的云彩控件,在这个控件中增加一个Image,Image不能继承不能作为基类,所以我们使用一个Canvas作为容器。

     可是,我们的资源在这里呢?需要准备一套图片,然后添加到工程当中,在这里加了一个Src的目录,如下图所示:(文件在下面的附件中可以下载)

 

      现在在MainPage类中添加如下代码:

     运行一下就可以看到效果:

     我们看到一个云彩在页面当中,这是使用纯代码形式显示的第一张图片,在这个结构中,ClassCloud类是继承自Canvas的控件,里面有一个Image的控件,虽然说起来很麻烦,但是并不复杂,相信应该能够很容易理解,但是一个片云彩没有什么意思,我们最终的目的是想让其飘动起来,但是怎么做到呢?最主要的,首先是可以控制它的坐标:

      上面的XY可以直接控制自身的坐标,这里就不用做实验了……云彩肯定是一堆云彩,会有很多个,这样的话,就需要另外一个容器装载这些云彩,为了让结构清晰,咱们设定一个ClassCloudGroup用来管理这些云彩,同时,这个也是一个控件容器:

 

     上面的代码意思是创建一个容器,指定数量的创建云彩,只需要在MainPage的构造函数中增加出来,然后添加窗口中,运行效果如下:

     现在出现了很多云彩,随机分布在蓝色背景上, OK,那么下一步就是让他们动起来,由于设定的游戏是向下飞行,那么云彩应该向上飘动,因此我们在云彩组里加入如下的代码:

     运行效果如下:

     为了更加好看,我做了一些特殊处理,详细参见源代码吧:点击这里下载

      代码上做了一些有趣的修正,可能和上述的代码不一致,但是有详细的注释,相信应该对大家有个帮助。

     这是游戏最有魅力的地方,你能通过操作创造一个世界,这是一个单纯的简单背景,那么下次,咱们一起和飞行员飘落:)

 

Get Microsoft Silverlight
posted on 2010-01-21 18:03  nowpaper  阅读(3082)  评论(3编辑  收藏  举报