前面的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,那么下一步就是让他们动起来,由于设定的游戏是向下飞行,那么云彩应该向上飘动,因此我们在云彩组里加入如下的代码:
运行效果如下:
为了更加好看,我做了一些特殊处理,详细参见源代码吧:点击这里下载
代码上做了一些有趣的修正,可能和上述的代码不一致,但是有详细的注释,相信应该对大家有个帮助。
这是游戏最有魅力的地方,你能通过操作创造一个世界,这是一个单纯的简单背景,那么下次,咱们一起和飞行员飘落:)