• 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在特定情况下作为精灵容器也不失为一个好的选择,制作精灵是的最终目的是为开发游戏方便,能够解决我们问题才是最终的需求,比如下述的情况,该如何用选择呢?

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

  • 相关阅读:
    java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
    java 多线程研究:锁的概念
    PHP 学习笔记之一:thinkPHP的volist标签
    Flask 学习篇二:学习Flask过程中的记录
    Docker 学习应用篇之三: Docker的简单实用
    CodeForces 832B Petya and Exam
    CodeForce 832A Sasha and Sticks
    Docker 学习应用篇之二: Docker的介绍和安装
    ASP.NET中AJAX的异步加载(Demo演示)
    Java实现 蓝桥杯VIP 算法训练 连通分块(并查集)
  • 原文地址:https://www.cnblogs.com/nowpaper/p/1649124.html
Copyright © 2020-2023  润新知