用事实说话-Silverlight5有搞头
测试页面,需要silverlight5 beta
https://crazylights.googlecode.com/svn/clge_publish/s5testTestPage.html
我最关注的部分,是silverlight5中的xna,我已经使用silverlight5实现了一个spritebatch
silverlight5 的xna,我先做了一个2D的测试。
,嘛,性能自然是没有原生的XNA4性能高,数据密集的操作是dotnet的死穴,罢了。
但用这玩意来做几个2D游戏自然是不在话下。
前景:
似乎很多场合都可以使用sl5来解决问题,那么只要投入够大,捧场够给力,sl5也可以形成庞大的应用软件生态。
我已经在考虑用sl5来搭建游戏开发工具和服务器管理工具。
复杂的耗时的运算,全部留着给服务器吧。
复杂如visual studio客户端都可以用silverlight来开发了,把编译器神马的,弄成服务器呗。
客户端需要的所有功能,silverlight都有了。
问题:
出于某种目的,当然我不是很了解,sl5中的xna4 和 之前随wp7 sdk发布的xna4有一些不同。
最大的差距莫过于没有 Effect和 数学库。
1.没有Effect再次回到了分别设置 VertexShader和PixelShader
2.没有数学库,好吧我自己写就是了
3.结合生硬,线程问题
4.RenderTarget不见了
5.贴图设置不便
问题比较严重的是XNA和silverlight的结合比较生硬,简简单单的绑了一个控件在那里。
而且,最而且,最严重的情况是,没有办法自己控制绘制,只能让控件重绘,然后在控件的XNADraw事件中处理绘制。
这只是前提,问题是这个XNADraw不在silverlight的UI线程中。
操作silverlight的控件和鼠标事件都在UI线程中,而呈现则在另一个线程,无疑增加了复杂度。
当然对于深谙多线程编程的我来说这不是什么问题,我只是提醒一下有志于加入silverlight5玩3d的兄弟们,线程这个环节上,比传统的客户端开发还要复杂一些。
问题2,RenderTarget不见了,也没有Texture2D的载入方法,只有SetData or CopyFrom(silverlight的 bitmapsource),都不是什么好招。
RT的替代方法倒是可以想象,但实在是不想提。
CopyFrom就是一个非常糟糕的贴图初始化方式,如果你实用,一定会需要设计一个异步控制机制,而且并不容易。问题还是线程。
虽然目前只是机械的整合了xna4,而且带来了线程的麻烦却没有给出解决方案和工具,一付你们自己看着整的架势。
仍然是瑕不掩瑜。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述