自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 人工智能点滴

1.人工智能这个词的理论意思是可以使计算机思考或处理信息方式类似于人类的硬件和软件。2.人工神经网络近似于人脑。遗传算法是一套技术和推测,运用于基于生物模式的软件系统;模糊逻辑则是把理论建立在可靠的推论上。3.明确的AI算法明确的算法是预定和既定程序的行为4.随机运动对飞行智能建模:fly_x_velocity = -8 + rand() % 16;fly_y_velocity = -

2007-07-27 22:25:00 907

原创 备用画面

备用画面1.DirectDraw的优点就在于它能够利用硬件加速。除非你用DirectDraw数据结构和物体存放位图,否则你是不能做到这点的。DirectDraw是使用图形变换的关键。你已经看到了如何利用建立主画面和后备缓冲创建一个页交换动画链,但是,你仍然需要学习如何在系统缓冲或者VRAM中创建一个m*n备用画面。用这些画面,你才能够用位图填充它们,而后利用图形变换将它们从画面图形变换到屏幕。

2007-06-06 23:41:00 1086 1

原创 采用位图

 采用位图1.有很多不同的位图文件格式,但是建议用BMP,其他格式工作原理相通,所以你知道了处理一种文件格式,另外一种除了获得文件头信息,从磁盘上读一些字节之外没有什么不同。2.装载BMP文件(1).BMP文件包含三个部分位图头文件:它存放着图象的一般信息,存放在Win32的结构BITMAPFILEHEADER中。位图信息段:包括两部分数据结构,即BITMAPFILEHEADER部分和调色板信

2007-06-04 23:39:00 845

原创 使用lDirectDrawClipper进行DirectDraw剪切

使用lDirectDrawClipper进行DirectDraw剪切1.DirectDraw有一个称作为IDirectDrawClipper的接口用于所有的2D图形变换剪切,就像在DirectX3D下,进行3D着色一样。但是现在,你只是对使用剪切板剪切有函数Blt()绘制的位图以及相关的硬件有兴趣2.设置DirectDraw剪切,需要做下面这些。(1).创建DirectDraw剪切板(2).创

2007-06-04 23:38:00 977

原创 剪切基础

剪切基础:1.剪切通常定义为:"不画在视区或窗口之外的像素或图象部分。"就像Windows将剪切画向你的窗口的用户区的任何东西一样,你需要对运行在DirectX上的游戏这样做2.如果你想写一个位图引擎画像素、直线、位图,需要你自己对画的线、点进行剪切。但是,DirectDraw可以帮助剪切位图,条件是位图正好是DirectDraw的画图模式,或者是IdirectDrawSurfaces模式。

2007-06-04 23:37:00 730

原创 一个到处跑的头程序

#define WIN32_LEAN_AND_MEAN  // just say no to MFC#define INITGUID#include    // include important windows stuff#include #include #include // include important C/C++ stuff#include #include #incl

2007-06-04 23:36:00 682

原创 图形变换器

1.使用图形变换器进行内存填充内存填充意味着用一定的值填充VRAM中的一块区域。你已经在锁定画面,利用memset()或memcpay()操作画面内存时做过了几次,但是这些方法有一些问题:首先,你采用主CPU进行内存填充,所以主总线是传输的一部分。其次,组成画面的VRAM不可能总是线性。这是,你不得不进行一线一线填充或者移动。但是,利用硬件图形转换,你可以马上直接填充或者移动大块VRAM或

2007-05-31 21:59:00 901

原创 动态画面

动态画面1.后备缓冲(back-buffer)后备缓冲是指几何形状、色彩深度同主画面相同的用在动画链中的画面。创建一个带有后备缓冲的主画面的步骤:(1).首先,你要将DDSD_BACKBUFFERCOUNT加到dwFlags标志字段,向DirectDraw表明DDSURFACEDESC2的dwBackBufferCount字段有效,以及含有后备缓冲数目。(2)其次,将控制标志DDSCAPS_COM

2007-05-30 23:38:00 1438

原创 24、32位真彩色

24、32位真彩色:1.24位定位:DWORD pixel_addr = 3*(x) + y*lpitch;       video_buffer[pixel_addr] = blue;       video_buffer[pixel_addr+1] = green;       video_buffer[pixel_addr+2] = red;知识回顾:lPitch表示从画面一行行首数据到下一

2007-05-28 23:12:00 1844

原创 高级DirectDraw

 1.真彩色模式下工作为什么很少用在3D引擎中(1)计算速度的问题(2)内存带宽2.16位真彩色模式16位模式有许多可能的位编码技术:(1)Alpha5.5.5 --这种模式用D15位存储一个Alpha值(表示是否透明),其余15位均匀分配给红色5位,绿色5位,蓝色5位。这样每种色彩产生的变换为32,每个调色板有32的三次方种变换。(2)X.5.5.5 -- 这种模式同Alpha.5.5.

2007-05-27 22:02:00 950

原创 首次接触DirectDraw

DirectDraw1.DirectDraw可能是DirectX中最重要的技术,因为它沟通了2D图形的显示和Direct3D所依赖的真缓冲层。只要掌握了DirectDraw,就能够编写各种在DOS16/32下编写的图形应用程序。DirectDraw是理解DirectX中许多概念的关键,所以要特别注意。2.DirectDraw的界面DirectDraw由5个界面组成:(1)IUnknown--所

2007-05-27 22:01:00 924

原创 DirectX介绍:

DirectX介绍:1.DirectX的工作原理是什么呢?DirectX提供了几乎是硬件级控制所有设备的功能。这样就可以通过组件对象模型(COM)技术和由Microsoft和硬件厂商编写的一套驱动程序和库函数来完成。Microsoft提出了一套关于函数、变量、数据结构等内容的协议--硬件厂商也必须遵循以实现驱动程序与和硬件间的交流。只要遵行这些约定,就不需要担心硬件的细节问题。只要将该内容调用到D

2007-05-24 22:38:00 1198

原创 T3D游戏控制程序

T3D游戏控制程序1.对windows的工作机制的了解已经告一段落了,现在我们将讨论如何装配T3D游戏控制程序,从现在开始,该控制程序将是所有演示程序和游戏的基础2.首先我们要创建一个Windows应用程序,需要使用WinProc()和WinMain()函数。下面我们创建一个最小的包含这些组件的Windows应用程序。该应用程序将调用三个函数,来运行游戏逻辑过程。如图:我们需要三个新函

2007-05-23 23:41:00 902

原创 获取信息

 获取信息1.GetSystemInfo() 主要返回关于处理正在使用的硬件的信息,如处理器类型,有多少个处理器等内容具体见MSDN2.GetSystemMetrics() 非常通用的能够检索 Windows 和Desktop 的所有信息的函数具体见MSDN3.GetTextMetrics() 用于了解字体,来更准确的定位文本。具体见MSDN

2007-05-22 22:38:00 799

原创 Windows控件

Windows控件:1.Windows子控件实际上就是窗口本身.即使最复杂的窗口控件也是这些基本类型的混合体。例如一个文件目录控件只是一些文本编辑框和一些按钮。2.按钮(1)BS_PUSHBUTTON 创建一个按钮,当用户选定该按钮时向自己的窗口发送一个WM_COMMAND消息(2)BS_RADIOBUTTON 创建一个带文本的小圆圈。默认情况下,该文本在该圆圈右侧显示(3)BS_CHECKB

2007-05-22 22:37:00 733

原创 低级定时控制

低级定时控制:1.定时器跟踪时间的所遇到的一些困难:首先、定时器传递消息第二、定时器并不那么准确第三、在大多数游戏循环中,都希望能够强制主程序以指定桢数运行,而且桢数不能过高,定时器在这方面并不擅长。2.游戏锁定桢数,需要查询系统时钟,然后运行差动测试来检查过去了多少时间。Win32 API 具有这样的功能,称之为GetTickCount();原型:DWORD GetTickCount(voi

2007-05-22 22:36:00 605

原创 定时的重要性

定时的重要性1.对于视频游戏来讲,定时是非常关键的。如果没有定时和合理的延迟,游戏可能会运行得太快或太慢,动画的错觉就将完全丧失了。2.WM_TIMER消息是又定时器发出的消息首先我们先创建一个定时器:函数原型:UNIT SetTimer(HWND hwnd,                       UINT nIDevent,                       UINT nEl

2007-05-20 22:28:00 816

原创 关于文本和字体

关于文本和字体1.对于DirectX环境下的游戏等产品来讲,大多数情况下都使用自己的字体引擎来编写自己的文本。使用GDI来绘制文本的唯一的地方,就是在GDI进行游戏编程过程中快速绘制分数或者其他的简单信息等等。但是最后必须创建自己的字体系统来获得任意的速度。2.如何应用DrawText()和TextOut()函数来改变字体SelectObject(hdc,GetStockObject(SYST

2007-05-20 22:27:00 640

原创 高级GDI图形编程(3)

 高级GDI图形编程(3)1.绘制圆(1)事实上,GDI是按照绘制椭圆的方式来画圆。还有更独特的,实际上GDI先绘制一个有边界的矩形,GDI则绘制被这个举行包围的椭圆。本质上讲定义椭圆的原点的同时也在定义长轴和短轴。(2)Ellipse()是绘制椭圆的函数函数原型:BOOL Ellipse(HDC hdc,                      int nLeftRect,          

2007-05-20 22:26:00 748

转载 星际2现人间!!

游戏视频http://tvpot.daum.net/theme/Them ... 122&lu=m_mono_1CG视频http://www.youtube.com/watch?v=aUXoekeDIW8 以下是从WWI现场的演示视频中获得的有关《星际争霸2》的兵种信息。有一些老兵种获得了新的技能,也有一些全新的兵种。Protoss狂徒[Zealot]:仍然拥有PSI双刀和能量护盾,新的冲

2007-05-20 10:32:00 574

原创 高级GDI图形编程(2)

1.使用画刷(1)HBRUSH brush_1 = NULL;brush_1 = GetStockObject(LTGRAY_BRUSH);(2)创建纯色画刷函数原型:HBRUSH CreateSolidBrush(COLORREF crColor);//brush color(3)将画刷选定到图象设备描述表中HBRUSH old_brush = NULL;old_brush = Sele

2007-05-19 22:14:00 639

原创 高级GDI图形编程(1)

1.图形设备描述表一个图形描述表实际上就是对一种安装在系统中的视频图象卡的描述。同时要记住的是同时还是当前绘制工具的描述。2色彩、画笔和画刷a.能够在计算机屏幕上绘制的对象的类型并没有多少。只有点、线和矩形。其他的任何东西都是这些基本图元对象类型的组合。b.GDI一般一次只使用一个画笔和画刷。在你的系统配置中可以有许多画笔和画刷,但是在当前图形设备描述表中每次只有一个画笔或画刷被激活。这样就必

2007-05-19 22:13:00 694

原创 提高Google Adsense收入

作者:shunz转载请注明出处:http://www.shunz.net/2006/11/adsense-2.html上周与一位朋友聊起对Adsense的优化技巧,让我对Adsense的优化做了一次整体的回顾。其实,我在05年1月份就写过一篇关于提高Google Adsense收入的blog,而且被国内的很多网站转载(当然,绝大多数网站未注明出处),但是当时我接触Adsense的时间并不是特别

2007-05-19 17:22:00 686

转载 Google真的那么容易寄钱给你吗?

Google真的那么容易寄钱给你吗?入伍令寄来了,也不得不暂时中断三个站的写作。一开始写Google Adsense的教学一方面是希望吸引流量,一方面也希望可以帮助一些想参加的朋友。在一边学一边做的状况下,没想到却是Google Adsense被停的文章得到了高度流量,也带动了整个站成为了三个站中广告收益最高的一个。现在要有办法把自己的站台推出去的管道很多,但事实上有很多人写了不少有价值(这里

2007-05-19 17:18:00 863

原创 将消息传给自己

将消息传给自己1.自我传递消息,有两种方式实现这项工作:SendMessage()--直接向窗口传递一个要处理的消息。如果接受窗口已经处理了该消息,在WinProc之后该函数返回。PostMessage--向窗口传递一个消息序列并且直接返回。如果不在意处理消息的时间延迟,或者该消息优先级较低,可以使用该函数。(函数原型请查阅MSDN)2.如果PostMessage()成功的话,将返回一个非零值

2007-05-19 10:47:00 668

原创 鼠标编程(简单版)

  鼠标的编程1WM_MOUSEMOVE消息a.首先要记住一件事情就是,鼠标位置是和其在窗口的用户区的位置相对应的。鼠标传递的是相对于窗口左上角的坐标。b.参数:    int mouse_x = (int)LOWORD(lParam);    int mouse_y = (int)HIWORD(lParam);    int buttons = (int)wParam;          详细见

2007-05-19 10:25:00 2633

原创 键盘编程

键盘的编程1.访问该键盘消息a.通过WM_CHAR消息b.通过WM_KEYDOWN和WM_KEYUP消息c.通过调用GetAsyncKeyState()其中a与b这两个消息中所封装的信息类型有所不同。2按下一个键盘上的键将产生两串数据:扫描码或ASCII码,扫描码可指定键盘上每一个键的单值码,和ASCI码无关,只关心是否按下某个键,而不关心大小写(如a和shift+a的区别),扫描码由WM_K

2007-05-19 10:02:00 946

原创 Windows处理重要事件的一些操作

Windows处理重要事件的一些操作1.消息:WM_ACTIVATE参数:fActive = LOWORD(wParam);     fMinimized = (BOOL)HIWORD(wParam)     hwndPrevious = (HWND)lParam其中fActive主要定义了该窗口发生了什么事,主要是判断是激活还是取消;其中fMinimized变量只能指示该窗口是否最小化,

2007-05-18 19:39:00 703

转载 一道很有意思的题目

  本文由 {/ztの鱼{{  发表在 鱼鱼领域 [%=@title%]

2007-05-16 17:52:00 735

原创 心情故事

作为一个还很业余的程序员,自己的心情希望有人能理解,希望自己能走的更远,所以有时候很mental,我有一个好老婆,但是我经常让她受气,哎,想想真是不应该,还有好长一端路要走呢,大家能互相理解就好了,老婆加油!我也会加油的! 

2007-05-15 23:21:00 571

原创 学习WM_PAINT的一点记录

一、传递WM_PAINT消息的时机当一个窗口被移动或改变大小或被其他窗口以及事件以一定的图形方式变暗时,该窗口的用户区的一部分或全部都需要刷新时.二、BeginPaint函数返回值ps(PAINTSTRUCT)的结构typedef struct tagPAINTSTRUCT{    HDC hdc; //graphics device context    BOOL fErase; //i

2007-05-15 16:52:00 758

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除