Welcome 微信登录

首页 / 软件开发 / C#

无废话C#设计模式之十四:Template Method

无废话C#设计模式之十四:Template Method

无废话C#设计模式之十四:Template Method2010-01-13 博客园 lovecherry意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。场景模版方法是非常容易理解的设计模式,一来是因为它没有过多结构上的交错,二来是因为这种代码复用技术对于掌握OO知识的人来说非常容易可以想到,很可能你已经在很多地方运用了模版方法。在运用一些设计模式的时候...
无废话C#设计模式之十五:Strategy

无废话C#设计模式之十五:Strategy

无废话C#设计模式之十五:Strategy2010-01-13 博客园 lovecherry意图定义一系列的算法,把它们一个一个封装起来,并且使它们可相互替换。本模式使得算法可以独立于它的客户而变化。场景在开发程序的时候,我们经常会根据环境不同采取不同的算法对对象进行处理。比如,在一个新闻列表页面需要显示所有新闻,而在一个新闻搜索页面需要根据搜索关键词显示匹配的新闻。如果在新闻类内部有一个ShowData方法的话,那么我们可能会传入一个searchWord...
无废话C#设计模式之十六:State

无废话C#设计模式之十六:State

无废话C#设计模式之十六:State2010-01-13 博客园 lovecherry意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。场景我们在制作一个网上书店的网站,用户在书店买了一定金额的书后可以升级为银会员、黄金会员,不同等级的会员购买书籍有不同的优惠。你可能会想到可以在User类的BuyBook方法中判断用户历史消费的金额来给用户不同的折扣,在GetUserLevel方法中根据用户历史消费的金额来输出用户的等级。带来的问...
无废话C#设计模式之十七:Chain Of Resp

无废话C#设计模式之十七:Chain Of Resp

无废话C#设计模式之十七:Chain Of Resp2010-01-13 博客园 lovecherry意图使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象能处理请求为止。场景假设我们在制作一个游戏的客服系统,客服有三种角色,分别是普通客服、客服经理和客服总监。玩家在网站中提问后,根据问题的分类和重要性处理的流程不一样。规则如下:l 分类为1(游戏问题)和2(角色问题)的问题...
无废话C#设计模式之十八:Command

无废话C#设计模式之十八:Command

无废话C#设计模式之十八:Command2010-01-13 博客园 lovecherry意图将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。场景我们知道,网络游戏中的客户端需要不断把当前人物的信息发送到游戏服务端进行处理(计算合法性、保存状态到数据库等)。假设有这样一种需求,在服务端收到客户端的请求之后需要判断两次请求间隔是不是过短,如果过短的话就考虑可能是游戏外挂,不但不执行当前请求还要...
无废话C#设计模式之十九:Observer

无废话C#设计模式之十九:Observer

无废话C#设计模式之十九:Observer2010-01-13 博客园 lovecherry意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。场景这次不说游戏了,假设我们需要在一个Web页面上分页显示数据。首先需要一个分页控制器和一个显示数据的表格。开始,客户的需求很简单,需要两个向前翻页向后翻页的按钮作为控制器,还需要一个GridView来显示数据。你可能会这么做:l 在页面上放两个按钮和一个G...
无废话C#设计模式之二十:Mediator

无废话C#设计模式之二十:Mediator

无废话C#设计模式之二十:Mediator2010-01-13 博客园 lovecherry意图用一个中介对象来封装一系列对象的交互。中介者使得各对象不需要显式相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。场景我们知道,一个网络游戏往往有很多大区。每一个大区可以是一组服务器,也可以是多组服务器,在这里假设一个大区是一组服务器。为了效率,一般每个大区都会有一个数据库,玩家的创建角色、充值、消费行为只是在这一个大区中有效。现在公司有了新的需求,...
无废话C#设计模式之二十一:Visitor

无废话C#设计模式之二十一:Visitor

无废话C#设计模式之二十一:Visitor2010-01-13 博客园 lovecherry意图实现通过统一的接口访问不同类型元素的操作,并且通过这个接口可以增加新的操作而不改变元素的类。场景想不出什么好例子,我们在组合模式的那个例子上进行修改吧。我们知道,无论是游戏大区、游戏服务器还是游戏的服务都是一个元素,只不过它们的层次不一样。对于这样的层次结构,我们使用了组合模式来统一各层的接口,这样对游戏大区的操作和对游戏服务器的操作对调用方来说没有什么两样。在...
无废话C#设计模式之二十二:总结(针对GOF23)

无废话C#设计模式之二十二:总结(针对GOF23)

无废话C#设计模式之二十二:总结(针对GOF23)2010-01-13 博客园 lovecherry比较设计模式常用程度适用层次引入时机结构复杂度Abstract Factory比较常用应用级设计时比较复杂Builder一般代码级编码时一般Factory Method很常用代码级编码时简单Prototype不太常用应用级编码时、重构时比较简单Singleton很常用代码级、应用级设计时、编码时简单Adapter一般代码级重构时一般Bridge一般代码级设计...
用c#和GDI+实现杂志翻页动画效果

用c#和GDI+实现杂志翻页动画效果

用c#和GDI+实现杂志翻页动画效果2010-01-13 blog.csdn.net 周公说明:以前本人参与个一个电子杂志项目,当时要求实现模拟现实生活中的杂志翻页动画效果,别人推荐了这篇文章,最后达到了我想要的效果,今天尝试把这篇文章翻译了一下。希望对英语水平不太好的同行有帮助。如果你的英语水平足够好,我推荐你阅读英文原文,网址是:http://www.codeproject.com/KB/GDI-plus/TurnThePage.aspx,同时希望大家...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(一)让物体动起来①

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(一)让物体动起来①

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(一)让物体动起来①2010-01-25 博客园 深蓝色右手序:自从QXGame(WPF GAME ENGINE)游戏引擎公布以来,受到很多朋友的热切关注,于是乎有了写教程的想法。那么从今天开始,我将带领大家一步一步的学会如何使用纯C#开发WPF/Silverlight游戏引擎,过程中我会尽量的开源,并对相关小技巧进行解释和介绍,比较复杂的算法原理我会给大家一条绝对可行的思...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二)让物体动起来②

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二)让物体动起来②

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二)让物体动起来②2010-01-25 博客园 深蓝色右手第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画。其实直接点,CompositionTarget创建的动画是基于每次界面刷新后触发的,与窗体刷新率保持一致,所以频率是固定的,很难人工介入控制。那么如何使用它?xaml的界面代码还...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三)让物体动起来③

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三)让物体动起来③

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三)让物体动起来③2010-01-25 博客园 深蓝色右手第三种方法,DispatcherTimer动画,该类型动画与CompositionTarget动画类似,是基于界面线程的逐帧动画,但他与CompositionTarget动画不同,DispatcherTimer动画可以轻松的进行参数设置:xaml界面代码仍然沿用第一节的,那么接下来我们在后台代码中创建相关对象:Re...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(四)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(四)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(四)2010-01-25 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(四)实现2D人物动画①通过前面的学习,我们掌握了如何动态创建物体移动动画,那么接下来我将介绍WPF中如何将物体换成2D游戏角色,并通过使用前面所讲的DispatcherTimer计时器来实现2D人物角色的各种动作动画。动态实现2D人物角色动画目...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)2010-01-25 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)实现2D人物动画②第二种方法我称之为图片截取法,准备工作:这里我以创建主角向右方向施法动画为例。首先需要将10帧150*150的图片通过Photoshop或其他方式合成为一张1500*150的大图,如下图:从图上可以很清晰的看出主角的整个流...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(六)完美移动

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(六)完美移动

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(六)完美移动2010-01-25 博客园 深蓝色右手经过前面的介绍和学习,我们分别掌握了如何点击鼠标让对象移动,并且实现2D人物的动作动画。那么,如何将两者完美的进行融合呢?这一节的内容将涉及到很多重要的技术及技巧,很关键哦。那么同样的,前台xaml还是保持不变,接下来看后台C#第一部分:int count = 0;Image Spirit;Storyboard stor...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(七)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(七)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(七)2010-01-25 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(七)传说中的A*寻径算法关于地图引擎方面的处理涉及到两个方面的知识:1)地图的实现(包括地图的切割、合成、呈现方式等)2)地图物件的实现(包括地图中实现寻路、遮罩、传送点等)为了让大家能更加有兴趣深入后面的知识,我选择先从地图寻路开始讲解吧:目...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(八)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(八)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(八)2010-01-26 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(八) 完美实现A*寻径动态动画本节将紧接着上一节,在它的基础上实现鼠标点击动态创建完美的A*寻路动画。(模拟游戏中人物的真实移动,这次可是有障碍物的,可以说基本上完成了人物移动引擎的一半了呢)首先,在上一节的代码前部分加入一个叫做player的...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九)2010-01-26 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九) 2D游戏角色在地图上的移动本节将运用前两节的知识到实际的2D游戏人物在地图上移动中,同时也算是对前面八节的内容进行一次综合运用吧。那么先从最底层的地图讲起。首先我将一张地图添加进游戏窗口中,这里我同样使用Image控件:Image Map...
C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十)2010-01-26 博客园 深蓝色右手C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十)斜度α地图的构造及算法在当前的网络游戏中,地图基本都是采取一定斜度的拼装地图,这其中存在两种斜度地图的构造方式:第一种我称之为伪斜度地图:该类型地图表现层图片为斜度的,但地图基底障碍物等的构造则实为正方形,如下图:其实最典型的例...
<< 121 122 123 124 125 126 127 128 129 130 >>