代码改变世界

silverlight游戏设计(七)--项目组织

2010-12-24 16:30 by 姜 萌@cnblogs, 1145 阅读, 10 推荐, 收藏, 编辑
摘要:组织项目结构总揽 完成一个好的项目就像盖房子,光有一流的工人师傅还不够,还需要将他合理分工,这样才能确保工程的有序进行,各负各的职责。一起的一个项目大致是这样的结构: GameLibrary:作为整个游戏所需要的基础库和游戏引擎。当然实际中的会包括许多library。 GameBiz:游戏的逻辑,并作为游戏执行入口,它向UI注册事件,通过基础库和游戏引擎构建业务逻辑。引用GameLibrary等基础库和GameUI。 GameUI:只引用silverlight本身必须的库以及项目的自定义控件库 GameLoader:游戏的引导器或者叫做加载器,参见之前的文章:silverlight游戏 阅读全文

silverlight游戏设计(三)性能优化篇(上) -- Storyboard与DispatcherTimer的使用

2010-12-23 13:55 by 姜 萌@cnblogs, 1628 阅读, 18 推荐, 收藏, 编辑
摘要:其实说起性能优化,与其说是技术问题,不如说是编程习惯问题。在我之前所经历的webgame项目中,sl与flash对比?按照微软的说法,或许sl能够比flash性能更强。但是如同评判一个程序的好坏一样,绝大多数情况下性能的优劣取决于你是怎么写的代码而不是所依托底层技术。引起注意我小小总结了一下,在UI层次上应该注意一下几点:不要过分使用Storyboard不要过分使用BitmapEffect不要过分... 阅读全文

silverlight游戏设计(二)资源管理篇(上)--实现一个多任务资源下载器

2010-12-21 22:32 by 姜 萌@cnblogs, 1569 阅读, 18 推荐, 收藏, 编辑
摘要:我在silverlight游戏设计(一)主程序加载器这篇文章中写的那个加载器中其实已经包含了一个下载器。不过本篇需要的是一个在游戏运行时动态执行的下载器,这两者有什么区别呢?一方面在于前篇的那个下载器是串行下载所有文件,而对于一个正在运行的网游,因为我们对大部分资源(比如图片、脚本等)采取动态加载的策略,所以它随时都有可能去请求下载,也就是需要同时进行更多的下载任务;二是我们这个下载器与接下来资源... 阅读全文

silverlight游戏设计(一)主程序加载器

2010-12-21 09:36 by 姜 萌@cnblogs, 902 阅读, 21 推荐, 收藏, 编辑
摘要:有段时间没有搞webgame了,近期看到园子里有些silverlight方面文章,忍不住手闲也写几篇文章。作为silverlight webgame的开篇文章,先给大家普及一下主程序加载器的概念。 什么是加载器/为什么需要加载器 我们想一想,一个webgame做下来大概要多大?即便图片资源和其他一些诸如脚本等数据包是动态下载的,我所经历过的webgame最基本的少说也要500KB。对于国人来讲... 阅读全文

数据统计的视觉盛宴---visifire charts

2010-12-16 00:19 by 姜 萌@cnblogs, 4801 阅读, 13 推荐, 收藏, 编辑
摘要:上文中我给大家展示了微软提供的开源toolkit中图表控件的效果和使用,但是与fusion charts相比效果还是显得逊色。本篇将介绍另一种charts控件库—visifire charts。 visifire控件库不仅涵盖wpf/silverlight,还有windows phone的版本(由此可见将wpf的代码移植到silverlight和windows phone上是一个非常平滑的过程)。我们可以从visifire官网下载试用版本。 更加丰富的图表样式 wpf toolkit中的charts提供了7中现成的控件:AreaSeries,PieSeries,LineSeries,Bar 阅读全文

使用WPF toolkit--Charts使你的数据展现更加形象

2010-12-14 15:41 by 姜 萌@cnblogs, 13214 阅读, 18 推荐, 收藏, 编辑
摘要:今天在wooboo上看我们移动广告的收入情况时,发现上面的那个图表挺好看的,这个图表是用flex做的,查了下还挺有名,叫fusionchart,有免费版本和收费版本。 (flex上有名的fusion chart) 虽然.net没有提供线程的wpf/silverlight图表控件,但是在wpf/silverlight toolkit中包含了常用实用控件:AreaSeries,PieSeries,L... 阅读全文

谈.net开发人员应该熟悉的开发模式

2010-12-11 16:32 by 姜 萌@cnblogs, 4864 阅读, 24 推荐, 收藏, 编辑
摘要:我们总会有这样一个经验:一个系统最不容易也最不应该变化的部分是领域逻辑,最容易变化也最应该变化的是数据的呈现方式。在java的各种应用中可以说是到处可见mvc,j2ee贯穿mvc的概念,android的开发方式也是类mvc的,mvc结构对于做过java应用的人而言简直就是司空见惯。而在.net这边,由于之前微软为大家提供的各种winform、asp.net项目典范(比如那个petshop seri... 阅读全文

一个.net客户端通讯框架的设计(四)---协议解码/编码器工厂以及为其他模块提供消息的dealers/trigers

2010-12-10 10:15 by 姜 萌@cnblogs, 2594 阅读, 17 推荐, 收藏, 编辑
摘要:解码器IDecoder的实现在前几篇篇文章中,我们的通讯模块已经实现了socket连接、消息的发送与消息的解析,不过消息的解析部分是接口调用,并没有给出确切的协议解析方式。协议的解析式完全可以定制的。我们只需实现IDecoder接口即可。在前言中,我给出了目前我所使用的协议格式,基于这个协议格式,我们实现IDecoder如下:如果是NEED_DATA,它会再次接受消息。如果是OK,调用Decode... 阅读全文

一个.net客户端通讯框架的设计(三)---设计IO连接

2010-12-09 12:02 by 姜 萌@cnblogs, 2874 阅读, 18 推荐, 收藏, 编辑
摘要:IAsyncIOService(对应代码里的IAsyncConnector)这是一个异步IO服务接口,含有一下几个方法。IAsyncConnectorCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--publicinterfaceIAsyncConnec... 阅读全文

一个.net客户端通讯框架的设计(二)---准备FastBuffer和BOConverter

2010-12-09 11:20 by 姜 萌@cnblogs, 2486 阅读, 14 推荐, 收藏, 编辑
摘要:在网络编程中,我们会频繁用到两个东西,一个是buffer。一个是bit-order。把数据填充到buffer中,然后通过buffer读写我们所需要的基本数据,还好.NET为我们提供了BitConverter这个非常好用的util,方便我们编写自己的Buffer和字节序转换器。 IBuffer 通常Buffer会有如下几个概念;position,limit,capacity,flip,mark,... 阅读全文