Silverlight C# 游戏开发:关于精灵for Silverlight容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

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

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

 

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



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

相关文章
|
7月前
|
C# 容器
39.c#:groupbox容器
39.c#:groupbox容器
214 1
|
7月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
4月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
109 0
|
存储 程序员 C#
用C++的角度讲解C#容器
用C++的角度讲解C#容器
106 0
|
7月前
|
存储 开发框架 .NET
【C#】认识C# (为了游戏开发 O(≧口≦)O)
【1月更文挑战第26天】【C#】认识C# (为了游戏开发 O(≧口≦)O)
|
存储 程序员 C#
从C++的角度讲解C#容器
从C++的角度讲解C#容器
102 0
|
存储 C# 图形学
Unity游戏开发之C#快速入门
Unity游戏开发之C#快速入门C#是微软团队在开发.NET框架时开发的,它的构想接近于C、C++,也和JAVA十分相似,有许多强大的编程功能。个人感受是C#吸收了众多编程语言的优点,从中可以看到C、C++、Java、Javascript、python的影子,设计思想都是相通的(过段时间一定要看看设计模式),对比迁移地学习基本只需要记关键字、语法和包的用法。
1710 0