zoukankan      html  css  js  c++  java
  • Silverlight C# 游戏开发:关于精灵for Silverlight容器

         说明:素材来源于网络,版权归版权所有人所有

         游戏中的精灵非常常用,spirit这个小玩意具体谁发明的不得而知,从游戏开发的角度上,精灵可以帮助开发者便捷的完成开发工作,Silverlight基于MVC体系,控件就成了游戏开发者们理想的精灵,然而,具体用什么来构成精灵的基础,让我们来研究一下。

         在那之前,我们先准备一下素材,一组足够长的动画资源:

         Silverlight提供了如下容器:Grid、Canvas、StackPanel、Border、ScrollViewer,其中只有Grid和Canvas符合游戏精灵的容器,至于为什么,请参看后面三个的MSDN说明以及用法。

         Grid和Canvas能够为作为精灵容器,但是它们之间有着很明显的区别,从字面意义上讲Grid是格子,Canvas是画布,Grid提供的控制内部元素的方法是通过边距进行,而Canvas是通过笛卡尔坐标系坐标,其实就是初中书本上的直角坐标系,关于Grid和Canvas之间的不同,来看下面的图片:

         Grid定制内部元素的对齐样式和边距来锁定位置,如图所示即便是Grid发生变化,内部元素也会按照边距进行宽高调整,除非解锁边距(设置对齐方式),Gird有个好处在于如果图片宽高固定,可以固定内部的对齐坐标,比如底部对齐这就比较方便我们管理,用图形的方式表示为:

         如果用Grid作为容器实际运用到Silverlight当中图片显示如下:

          Canvas的景象则是另外一番,毕竟使用的纯粹的坐标画布,无非是位置问题,即便Canvas的大小为0,内部的元素仍然能够显示,所以这也是大多Silverlight开发者喜欢用Canvas的原因,毕竟清楚明了,只需要做偏移即可,下面是一张图片,可做参考:

         无论是Grid还是Canvas,作为精灵的容器应该是依据不同的需要进行选择,StackPanel在特定情况下作为精灵容器也不失为一个好的选择,制作精灵是的最终目的是为开发游戏方便,能够解决我们问题才是最终的需求,比如下述的情况,该如何用选择呢?

          如果真是一个可以换装的网络游戏,那么上面的情况就不得不详加考虑,因为动作造成身体的各个部分不是按照特定坐标进行转换,或者对齐,最终需要一个完美的解决方法来搞定它们,如果只是做一个简单的游戏,则就无需大费周章,最好的解决方案是多种类型的容器,可以依据不同的需求调动……总的来说,游戏开发考验自身的时候到了:)

  • 相关阅读:
    ado.net的基本特性
    The relationship's type
    the relationship's cardinality
    复杂心情中。。。
    the relationship's existence.
    ORACLE中国的短视
    ADO.net连接数据库
    虚拟基类的初始化
    递归实现全排列
    Factory Methods
  • 原文地址:https://www.cnblogs.com/nowpaper/p/1649124.html
Copyright © 2011-2022 走看看