您的位置:首页 > 其它

Silverlight Tips of the Day 系列翻译与领悟#3

2008-12-09 17:17 309 查看

Silverlight Tip of the Day #3: Silverlight Game Support, Limitations and Workarounds

在探索用Silverlight开发游戏的技术时我越过了一些障碍然后发现了一些解决方法。我打算用这个blog来记录这些问题以节约你探索类似问题的时间。此外,我在本章中放了一些其他Silverlight游戏教程的链接资源。

如果你发现其他更多资源,请告诉我,我会贴出来!谢谢。

游戏资源

Silverlight Games 101 by Bill Reiss

Refactor by Joel Neubeck.

Silverlight Game Programming Tutorial by Matthew Casperson

2D Game Development by Mike Gold.

Andy Beaulieu

Silverlight Games by Roger Guess

Developer Fusion

Silverlight支持范围

JPG 和PNG 文件格式。

透明 PNG 文件。

鼠标和键盘输入

音效

通过网格元素来设计游戏UI。

定时器 (动画, 游戏循环等使用)

透明度纹理混合。

支持Socket/TCP编程来达到多人网络游戏的效果。

事件(点击事件等)

动画 - 使用定时器代替帧的WPF模型。

Visual Studio的调试支持。

Silverlight现在不支持什么

GIF 或者 BMP 文件格式。


解决方法: 使用 PNG (或者 JPG) 文件。



从大图像中创建子区域图像。 (就像传统rpg游戏中走动的人物有多帧放在同一张文件中,然后取某个区域的图片做为显示的部分)

解决方法: 你有两个选择:



对你想显示的区域设置裁剪区。

把每个图片独立存成一个文件。不幸的是这样对动态精灵图片,意味着有一堆独立的文件,难于管理。



把文件保存在本地 - 因为关系到安全问题,Silverlight 2没有提供保存支持。将来可能会支持 SaveFileDialog 。 如果支持了,我会通知你们。我自己是需要这个功能的(为了我的地图编辑器)!


解决方法: 保存在Web服务器上。参考Michael Sync的 blog: http://michaelsync.net/category/silverlight 中的"Uploading with Silveright 2 Beta 1 and WCF"



浮点值坐标 - 如果你用一个个格子图片来组成一张地图, 当你滚动地图的 X 和 Y 坐标 一个小数值, 你会看到格子中间有一根线。


解决方法: 使用Round函数取整。



每个象素位图编辑,位图过滤(颜色矩阵等)以及效果 (污点,发光等)。


解决方法: 通过透明度你可以做一些非常cool的效果,例如地图格子间的平滑的过渡纹理混合。 参考这个 教程 例子。



3D渲染 – Silverlight 2没有任何3D支持。但是,可以看Silverlight 3中的 Tip of the Day #71 。你可以很高兴地看到3D在计划中。


解决方法: 有一些非常好的模拟3D的引擎和demo。例如:

http://www.markdawson.org/kit3d/

http://www.codeplex.com/Balder



不允许共享资源。例如在多个矩形中共享SolidColorBrush。 如果你有1000个矩形他们每个都需要一个独立的刷子。

Textbox等的文本对齐方式。


解决方法: 你不得不编程来居中文本。

原文链接

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: