• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ueqt
博客园    首页    新随笔    联系   管理    订阅  订阅

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

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游戏中走动的人物有多帧放在同一张文件中,然后取某个区域的图片做为显示的部分)

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

  1. 对你想显示的区域设置裁剪区。
  2. 把每个图片独立存成一个文件。不幸的是这样对动态精灵图片,意味着有一堆独立的文件,难于管理。
  • 把文件保存在本地 - 因为关系到安全问题,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。例如:

  1. http://www.markdawson.org/kit3d/
  2. http://www.codeplex.com/Balder
  • 不允许共享资源。例如在多个矩形中共享SolidColorBrush。 如果你有1000个矩形他们每个都需要一个独立的刷子。
  • Textbox等的文本对齐方式。

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

 

原文链接

posted @ 2008-12-09 17:17  ueqt  阅读(288)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3