<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dadalan的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/dadalan</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; dadalan]]></copyright><item><title><![CDATA[本人打算利用工作之余把一些好的游戏技术文章整理到（游戏技术论坛）（http://www.592xue.net/）]]></title><link>https://blog.csdn.net/dadalan/article/details/7523813</link><guid>https://blog.csdn.net/dadalan/article/details/7523813</guid><author>dadalan</author><pubDate>Mon, 30 Apr 2012 12:31:10 +0800</pubDate><description><![CDATA[本人打算利用工作之余把一些好的游戏技术文章，这些文章主要是这几块：关于2d,3d的游戏客户端技术，游戏渲染，物理引擎，以及游戏服务端开发，策划文档等等。
整理到（游戏技术论坛）（http://www.592xue.net/）]]></description><category></category></item><item><title><![CDATA[DirectInput 键盘编程]]></title><link>https://blog.csdn.net/dadalan/article/details/7270772</link><guid>https://blog.csdn.net/dadalan/article/details/7270772</guid><author>dadalan</author><pubDate>Sat, 18 Feb 2012 22:29:40 +0800</pubDate><description><![CDATA[DirectInput 键盘编程入门






















　　游戏编程可不仅仅是图形程序的开发工作，实际上包含了许多方面，本文所要讲述的就是关于如何使用 DirectInput 来对键盘编程的问题。

　　在 DOS 时代，我们一般都习惯于接管键盘中断来加入自己的处理代码。但这一套生存方式在万恶的 Windows 社会下是行]]></description><category></category></item><item><title><![CDATA[设置窗口背景透明]]></title><link>https://blog.csdn.net/dadalan/article/details/7161070</link><guid>https://blog.csdn.net/dadalan/article/details/7161070</guid><author>dadalan</author><pubDate>Thu, 29 Dec 2011 10:26:12 +0800</pubDate><description><![CDATA[SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|0x80000);
 typedef BOOL (WINAPI *FSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD);
 FSetLayeredWindowAttributes]]></description><category></category></item><item><title><![CDATA[一个监听器模式的消息管理器实现]]></title><link>https://blog.csdn.net/dadalan/article/details/5959802</link><guid>https://blog.csdn.net/dadalan/article/details/5959802</guid><author>dadalan</author><pubDate>Fri, 22 Oct 2010 21:19:00 +0800</pubDate><description><![CDATA[     消息管理器是用来在各个实体对象和功能模块之间进行数据通信的.一个好的消息管理器可以最大限度的实现解藕操作,使得模块具有"热插拔"特性,这是我们所希望达到效果.但是在实现的过程中有几点细节实现需要仔细斟酌,比如消息管理与分发的方式,如何实现一个通用的支持动态更新的消息管理器.下面是我学习根据自身经验实现的一个消息管理器,希望能够抛砖引玉,共同提高 :)
      基本思路:
         1. 面向接口编程: 实现一个IMsgListener抽象接口类,所有需要消息处理的类都需要从该接口类]]></description><category></category></item><item><title><![CDATA[标准库和boost库中几个智能指针的比较]]></title><link>https://blog.csdn.net/dadalan/article/details/5959775</link><guid>https://blog.csdn.net/dadalan/article/details/5959775</guid><author>dadalan</author><pubDate>Fri, 22 Oct 2010 20:50:00 +0800</pubDate><description><![CDATA[这些智能指针在设计的时候，一个关键的问题就是所有权的控制。如果把指针所指向的对象比作电视机的话，那么指针就是观众。第一个人需要看电视的时候需要打开它，没人看的时候就要保证把电视关掉。对于std::auto_ptr,boost::shared_ptr和scoped_ptr，情况如下：<br />1. std::auto_ptr：auto_ptr这个种族很有趣，每次只让一个人看电视，大家可以换着看，由最后那个不想看的人关掉。当把一个auto_ptr赋值给另一个时，就好比换一个人看电视似的。总之，电视只能一个人看]]></description><category></category></item><item><title><![CDATA[uiwebview打开doc,pdf文件]]></title><link>https://blog.csdn.net/dadalan/article/details/5959301</link><guid>https://blog.csdn.net/dadalan/article/details/5959301</guid><author>dadalan</author><pubDate>Fri, 22 Oct 2010 16:27:00 +0800</pubDate><description><![CDATA[<br />UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 55, 320, 300)];<br />    webView.delegate = self;<br />    webView.multipleTouchEnabled = YES;<br />    webView.scalesPageToFit = YES;<br /><br />    NSArray *paths = NSSearchPathForD]]></description><category></category></item><item><title><![CDATA[Lua脚本在C++下的舞步（一）]]></title><link>https://blog.csdn.net/dadalan/article/details/5952337</link><guid>https://blog.csdn.net/dadalan/article/details/5952337</guid><author>dadalan</author><pubDate>Tue, 19 Oct 2010 21:57:00 +0800</pubDate><description><![CDATA[现在，越来越多的C++服务器和客户端融入了脚本的支持，尤其在网游领域，脚本语言已经渗透到了方方面面，比如你可以在你的客户端增加一个脚本，这个脚本将会帮你在界面上显示新的数据，亦或帮你完成某些任务，亦或帮你查看别的玩家或者NPC的状态。。。如此等等。<br /><br />但是我觉得，其实脚本语言与C++的结合，远远比你在游戏中看到的特效要来的迅猛。它可以运用到方方面面的领域，比如你最常见的应用领域。比如，你可以用文本编辑器，写一个脚本语言，然后用你的程序加载一下，就会产生出很绚丽的界面。亦或一两句文本语言，]]></description><category></category></item><item><title><![CDATA[How do I pause my game?]]></title><link>https://blog.csdn.net/dadalan/article/details/5951448</link><guid>https://blog.csdn.net/dadalan/article/details/5951448</guid><author>dadalan</author><pubDate>Tue, 19 Oct 2010 15:36:00 +0800</pubDate><description><![CDATA[Object[] objects =FindObjectsOfType(typeof(GameObject));foreach(GameObject go in objects){
        go.SendMessage("OnPauseGame",SendMessageOptions.DontRequireReceiver);}<br />And to resume call OnResumeGame on all objects.<br />A basic script with movemen]]></description><category></category></item><item><title><![CDATA[[iPhone] 观察者模式与游戏开发]]></title><link>https://blog.csdn.net/dadalan/article/details/5951079</link><guid>https://blog.csdn.net/dadalan/article/details/5951079</guid><author>dadalan</author><pubDate>Tue, 19 Oct 2010 13:30:00 +0800</pubDate><description><![CDATA[简介 三月份的时候,我接到一个IPhone游戏项目的开发,为了这个游戏,我学习了观察者模式,并使用它在我的游戏里 背景 在我的游戏中，我设计的GameScene来当作游戏关卡的上层类。背景<br />在我的游戏中，我设计的GameScene来当作游戏关卡的上层类。它继承Observable，利用GameRole来实践游戏角色，像是Player跟NPC。GameRole则实践Observer，利用观察者模式来实践关卡中的角色的更新。<br /><br />代码如下<br /><br />   1. class]]></description><category></category></item><item><title><![CDATA[iPhone游戏中既播放背景音乐又播放特效声音的办]]></title><link>https://blog.csdn.net/dadalan/article/details/5950493</link><guid>https://blog.csdn.net/dadalan/article/details/5950493</guid><author>dadalan</author><pubDate>Tue, 19 Oct 2010 09:50:00 +0800</pubDate><description><![CDATA[<br />有时候在 iPhone 游戏中，既要播放背景音乐，同时又要播放比如枪的开火音效。此时您可以试试以下方法<br />    NSString *musicFilePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"wav"];       //创建音乐文件路径<br />    NSURL *musicURL = [[NSURL alloc] initFileURLWithPath:musicFilePath];  <br]]></description><category></category></item><item><title><![CDATA[D3D来实现2D的效果 的方法]]></title><link>https://blog.csdn.net/dadalan/article/details/5949792</link><guid>https://blog.csdn.net/dadalan/article/details/5949792</guid><author>dadalan</author><pubDate>Mon, 18 Oct 2010 22:15:00 +0800</pubDate><description><![CDATA[<br />很多D3D的初学者最感到困惑的问题是如何用D3D来实现2D的效果,因为DirectDraw已经不存在了（当然你还是可以用以前的版本的，但是可能不法利用一些最近的硬件加速）在这里我给大家介绍几种方法可以实现用D3D编写2D游戏 <br /> <br />方法一:<br />使用D3DX的接口ID3DXSprite,<br />void DrawSprite_2D( <br />        int dx,//窗口中的X座标<br />        int dy,//窗口中的Y座标<br /> ]]></description><category></category></item><item><title><![CDATA[DrawPrimitiveUP 与 DrawPrimitive]]></title><link>https://blog.csdn.net/dadalan/article/details/5949512</link><guid>https://blog.csdn.net/dadalan/article/details/5949512</guid><author>dadalan</author><pubDate>Mon, 18 Oct 2010 19:33:00 +0800</pubDate><description><![CDATA[<br />在D3D中，一共有三种基本图元，分别是点、线和三角形。点是最简单的图元，由它可以构成一种叫点列（point list）的图元类型。线是由两个不重合的点构成的，一些不相连的线组成的集合就叫线列（line list），而一些首尾相连但不形成环路的线的集合就叫线带（line strips）。同理，单独的三角形集合就叫三角形列（triangle list），类似于线带的三角形集合就叫三角形带（triangle strips），另外，如果多个三角形共用一个顶点作为它们的一个顶点的话，那么这个集合就叫三角形]]></description><category></category></item><item><title><![CDATA[NSNotificationCenter用于增加回调函数]]></title><link>https://blog.csdn.net/dadalan/article/details/5863743</link><guid>https://blog.csdn.net/dadalan/article/details/5863743</guid><author>dadalan</author><pubDate>Sat, 04 Sep 2010 21:10:00 +0800</pubDate><description><![CDATA[<br />[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_willBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];]]></description><category></category></item><item><title><![CDATA[extern用法]]></title><link>https://blog.csdn.net/dadalan/article/details/5854399</link><guid>https://blog.csdn.net/dadalan/article/details/5854399</guid><author>dadalan</author><pubDate>Tue, 31 Aug 2010 23:38:00 +0800</pubDate><description><![CDATA[<br />//  某个头文件，比如叫 ExternTest.h 中<br />externint iExtern; //  这样就是一个变量声明——而不是定义，因为没有分配存储空间<br />                    //这以后就可以引用这个变量，而这个变量的存储于下面的   int iExtern; 的那个位置分配<br />                    <br /><br />//  某个源文件，比如叫 ExternTest.c 中<br />int iExtern;<br /]]></description><category></category></item><item><title><![CDATA[深入A*算法]]></title><link>https://blog.csdn.net/dadalan/article/details/5841972</link><guid>https://blog.csdn.net/dadalan/article/details/5841972</guid><author>dadalan</author><pubDate>Thu, 26 Aug 2010 22:07:00 +0800</pubDate><description><![CDATA[<br />http://creativesoft.home.shangdu.net/AStart2.htm#1.0]]></description><category></category></item><item><title><![CDATA[初识A*算法]]></title><link>https://blog.csdn.net/dadalan/article/details/5841906</link><guid>https://blog.csdn.net/dadalan/article/details/5841906</guid><author>dadalan</author><pubDate>Thu, 26 Aug 2010 21:38:00 +0800</pubDate><description><![CDATA[初识A*算法　　写这篇文章的初衷是应一个网友的要求，当然我也发现现在有关人工智能的中文站点实在太少，我在这里抛砖引玉，希望大家都来热心的参与。　　还是说正题，我先拿A*算法开刀，是因为A*在游戏中有它很典型的用法，是人工智能在游戏中的代表。　　A*算法在人工智能中是一种典型的启发式搜索算法，为了说清楚A*算法，我看还是先说说何谓启发式算法。一、何谓启发式搜索算法　　在说它之前先提提状态空间搜索。状态空间搜索，如果按专业点的说法就是将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。通俗点说，就是在解]]></description><category></category></item><item><title><![CDATA[UML符号含义]]></title><link>https://blog.csdn.net/dadalan/article/details/5827358</link><guid>https://blog.csdn.net/dadalan/article/details/5827358</guid><author>dadalan</author><pubDate>Fri, 20 Aug 2010 18:03:00 +0800</pubDate><description><![CDATA[类之间的关系   UML把类之间的关系分为以下5种.   ● 关联：类A与类B的实例之间存在特定的对应关系   ● 依赖：类A访问类B提供的服务   ● 聚集：类A为整体类，类B为局部类，类A的对象由类B的对象组合而成   ● 泛化：类A继承类B   ● 实现：类A实现了B接口  关联（Association）   关联指的是类之间的特定对应关系，在UML中用带实线的箭头表示。按照类之间的数量对比，关联可以分为以下三种：   ● 一对一关联   ● 一对多关联   ● 多对多关联注意：关联还要以分为单向关联]]></description><category></category></item><item><title><![CDATA[测试程序的效率]]></title><link>https://blog.csdn.net/dadalan/article/details/5794290</link><guid>https://blog.csdn.net/dadalan/article/details/5794290</guid><author>dadalan</author><pubDate>Fri, 06 Aug 2010 23:03:00 +0800</pubDate><description><![CDATA[<br />#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main( void )
{
   time_t   start, finish;
   long loop;
   double   result, elapsed_time;

   printf( "Multiplying 2 floating point numbers 10 million times.../n" );
   
   ti]]></description><category></category></item><item><title><![CDATA[tinyint(3) unsigned zerofill的意思]]></title><link>https://blog.csdn.net/dadalan/article/details/5791774</link><guid>https://blog.csdn.net/dadalan/article/details/5791774</guid><author>dadalan</author><pubDate>Thu, 05 Aug 2010 22:20:00 +0800</pubDate><description><![CDATA[<br />宽度为3，不足用0补足，例如值为1，保存在数据库中为001]]></description><category></category></item><item><title><![CDATA[mysql 字段的修改]]></title><link>https://blog.csdn.net/dadalan/article/details/5791685</link><guid>https://blog.csdn.net/dadalan/article/details/5791685</guid><author>dadalan</author><pubDate>Thu, 05 Aug 2010 21:35:00 +0800</pubDate><description><![CDATA[//主键   alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);//增加一个新列   alter table t2 add d timestamp;   alter table infos add ex tinyint not null default '0';//删除列   alter table t2 drop c]]></description><category></category></item></channel></rss>