编程技术
programking
人间社会,几句杂谈。
展开
-
windows编程1
总结一个规律:老外的书是把复杂的事情说简单,中国的书是把简单的事情说复杂。我在一本编程的书里看到开篇的一个例子:#includeint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevious,LPSTR lpCmdString,int CmdShow){ return(1);}这就是一个windows程序,比"Hello Wo原创 2007-07-04 22:44:00 · 1090 阅读 · 4 评论 -
带爆炸效果的扫雷(源码3)
队列:当点击一个空白格子的时候,算法如下:将当前格子入队;循环:一个格子出队。将没有打开的空白格子进队(要没有打开过,且是空白)。将周围的格子置为“已打开”。不断重复,直至队列为空。为了方便,将一个格子周围8个格子的坐标差值放到数组中,循环使用。void GameMap::SearchBlank(int x,int y){ int tempindex[16]={-1, -1, 0,原创 2007-11-15 17:22:00 · 877 阅读 · 0 评论 -
带爆炸效果的扫雷(源码4)
计时器:由于需要暂停/恢复计时、绘图,所以专门作了一个类。 其中用了三个状态#define T_CLOSE 0#define T_START 1#define T_PAUSE 2应该可以优化。附 mytimer.h mytimer.cpp//定时器#ifndef __MYTIMER_H#define __MYTIMER_H#define T_CLOSE 0#define T_S原创 2007-11-15 17:29:00 · 851 阅读 · 0 评论 -
带爆炸效果的扫雷(源码1)
这个程序是以前写的,编码水平一般,规范性、命名还可以,待改进的地方有很多,大家拷下来自己玩吧。第一次把我写的代码贴出来。ok,开始,先来个截图:当鼠标单击的时候,有一个爆炸效果将格子炸开。程序简单说明:包含了计时,等级设置(含自定义),帮助对话框,排行榜。技术上没有用MFC,纯SDK做的。使用了两个定时器,一个表示成绩,一个播放动画。算法:如果单击的是空白格子,那么周围所有相原创 2007-11-15 16:33:00 · 1234 阅读 · 2 评论 -
带爆炸效果的扫雷(源码2)
游戏中处理地图生成,绘制,单击处理等主要逻辑的类 map.h,所有格子放在20*20=400的一个数组中,即最大支持长宽各20个格子。每个格子用一个字节表示,低四位0表示空格,1~8表示数字,9表示雷。高四位bit7~bit4: bit7表示该格子是否打开,bit6表示是否已经标记,bit5表示是否要打叉(点错或标记错的时候)。说明:除了动画以外,所有的图形元素都是32*32像素。简单的动画:原创 2007-11-15 17:06:00 · 981 阅读 · 0 评论 -
带爆炸效果的扫雷(源码5)
自己画了一个小工具栏,增加了鼠标单击/释放的处理程序。 附: mytool.cpp mytool.hmytool.h #ifndef __MYTOOL_H#define __MYTOOL_Henum e_button...{ E_LEVEL, E_HELP, E_SCORE};class MYTOOL...{public: MYTOOL(); ~MYTO原创 2007-11-15 17:41:00 · 1046 阅读 · 0 评论 -
带爆炸效果的扫雷(后记)
对话框资源,和图片素材就不贴了。想做一个横版过关的游戏,或者一个简单的45度样例,终究要写一个3D的,《星际2》,《暗黑》,还有《魔兽世界》,真是电影级的水准。《魔兽争霸》的过场动画已经是电影级的了,人家这技术才称的上“探索”二字。我这个程序,只是让各路大侠看看,以后还有别的游戏。原创 2007-11-15 17:53:00 · 826 阅读 · 0 评论 -
终于见到程序引擎
说来惭愧,工作一年多了,第一次接触到程序引擎。编程有一个最恰当的比喻,我看云风的书里写的,编程就像搭积木,不要说搭得多么好,能保证不塌就不错了。我原来的单位,使用的是纯C,代码浩浩荡荡。我天真地想,有没有一个牛人拿C++重写一遍?做一个引擎,提供一个功能完善的发动机,只要随便加其他配件就行。高,实在是高。拿C写的话,没有大问题,只有一个致命的问题“踩内存”。比如,拷贝内存的时候。那么,有没有什么办原创 2007-11-24 16:28:00 · 1561 阅读 · 2 评论 -
怎样做小游戏挖金子(VC,源码1)
《挖金子》这个游戏,以前就玩过,网上见到是FLASH做的。FLASH做的游戏,很棒,足以让人对脚本语言刮目相看。最近我用vc做了一个,基本实现了功能。但代码写得粗糙,有几处很笨拙。我还是想贴出来,大家讨论吧。(使用了原游戏的图片资源,纯属学习,无商业用途,特此声明)先看一下完成后的截图:屏幕菜单:游戏主画面:过关后的道具选择画面:失败后的画面:画面很粗糙原创 2008-04-12 21:08:00 · 4271 阅读 · 6 评论 -
怎样做小游戏挖金子(VC,源码2)
先别急着看源码,首先要解决的问题是程序框架。VC只是一个开发环境,支持的是C++。Windows下的程序,当然是用Windows API(Application Programming Interface)写成的。 VC提供了一个类库MFC,如同课本中介绍的一样,“点几下鼠标即可生成一个程序”。控件靠拖动即可生成。很方便,但也是最大的缺陷。隐藏了太多东西。我的电脑中VC的一个链接库有点问题,无原创 2008-04-12 22:35:00 · 3552 阅读 · 3 评论 -
怎样做小游戏挖金子(VC,源码4)
有人下载我的工程文件,“我很欣慰”,名字是“挖金子VC版源码”,大家多讨论。上回讲哪了?地图加载了,物品能显示了。该显示画面上方摆动的叉子了。计算机图形学的“图形旋转”,当然,有一个WINDOWS API函数PlgBlt,可我没有用。网上有很多介绍图形旋转的文章,我还是讲解一下我这个函数:void GAMECATCH::TcDrawAngleOff(HDC hdc,int *pv,f原创 2008-04-14 22:40:00 · 2718 阅读 · 0 评论 -
怎样做小游戏挖金子(VC,源码3)
说明:整个工程文件已经上传至“下载频道”, 名字是“挖金子VC版源码”。不仅包括源代码,还有图形资源。最方便的是能直接编译、运行。昨天讲解了游戏开始菜单的相关程序。今天开始讲游戏主逻辑。当用户点击了“开始”按钮后,进入游戏。需要做的工作是:加载地图,游戏上方的叉子开始摆动,同时检测用户按键,判断是否抓到物品等等。待俺一一道来。地图信息包括:第几关,物品及其坐标,以前两关的地图数据为例:原创 2008-04-13 21:55:00 · 3429 阅读 · 0 评论 -
怎样做小游戏挖金子(VC,源码5)
今天的程序讲课,开始。 前面几讲,涉及程序框架、地图文件、叉子的摆动、旋转拉伸,这几方面都可以归纳为基本数据处理,今天讲“交互”,很简单,判断叉子抓到物品,当拉回后,增加金钱数量。核心是碰撞检测。网上的这个游戏是FLASH作的,FLASH的碰撞检测就一个函数,即可实现各式各样的图形检测。VC中,就用自己动手。最初的想法,是把叉子看成一个圆形,各种矿石也看成圆形,做两个圆形的检测,只要检测圆原创 2008-04-15 21:29:00 · 3301 阅读 · 1 评论 -
横版游戏制作过程
这次做一个横版游戏,以前都是做完游戏后,才公布源码和制作过程。这回改一下,游戏没做,先讨论设计方法。横版游戏像“超级玛丽”“魂斗罗”,首先要解决的问题是地图问题。我以前想把整个地图存在一个大数组里,当需要检测某个地方是什么时,直接从数组中读出。这种方法并不好,只有益智类、棋牌类的游戏,地图很小时,用数组比较合适(包括上次做的纸牌)。还是用“对象”封装的方法比较好。把地图中的元素都分割成一个个对原创 2008-04-29 20:09:00 · 4099 阅读 · 1 评论 -
带秘笈的纸牌源码
我用VC实现的纸牌,规则和windows自带的纸牌相同,但多一个"秘笈"功能:当按住空格键不放,所有扣着的牌都将显示牌面.整个工程已经上传至CSDN下载频道,标题是“带秘笈的纸牌源码”。先来个截图:这就是按住空格键的“秘笈”效果。整个游戏的要点只有一个:鼠标检测。逻辑判断很简单,扑克牌用0-51表示,除13取余是牌值,商是花色(0-3)。牌的存储用数组实现。移动牌的时候,检测鼠标坐标->获原创 2008-04-27 18:45:00 · 1336 阅读 · 5 评论 -
冰块(3D MAX,图)
最近练了一下3D MAX,发个图,大家多交流学习。这是几个冰块(我想起了小时候的冰棍)。原创 2008-05-06 23:11:00 · 1431 阅读 · 0 评论 -
第一张室内设计图(3D MAX)
初学,做了两天,大家多交流。原创 2008-05-08 20:51:00 · 1702 阅读 · 2 评论 -
沙漠城堡(3D MAX,6小时)
沙漠的效果是用“斑点”做的,漫反射+凹凸。渲染时,环境效果中加“镜头效果”,但是,怎么调,也没有太阳的效果。最后PS了一个光晕。总共6小时。大家多交流。原创 2008-05-11 21:30:00 · 1200 阅读 · 0 评论 -
我的客厅(3D MAX图)
如果我自己设计客厅,应该是这个样子。原创 2008-05-11 12:16:00 · 2010 阅读 · 0 评论 -
宇宙飞船的走廊(3D MAX图)
新鲜出炉。本打算做成塑料的材质,但是,用了噪波、斑点,都不行。只要加上灯光,立刻变得像锡纸一样。把灯光变暗,图像又太黑。最后还是用了位图+凹凸。灯管部分用了薄壁折射。总共用2小时。原创 2008-05-12 19:03:00 · 1282 阅读 · 3 评论 -
纸牌、挖金子源码链接
纸牌源工程的链接是 http://download.csdn.net/source/432977挖金子源工程的链接是 http://download.csdn.net/source/412278如果不能下载,可以通知我电子邮箱,我直接发。我最近在练3D MAX,大家多支持。原创 2008-05-13 16:14:00 · 1811 阅读 · 0 评论 -
最近的几张作品(3D MAX)
这是最近的六张作品,大家多鼓励。原创 2008-05-21 21:36:00 · 972 阅读 · 2 评论 -
飞翔(3D MAX作品)
原创 2008-05-24 21:07:00 · 946 阅读 · 1 评论 -
3D MAX的车削命令(图)
这个命令太好了,凡是管、瓶状的东西都能车出来。这是两张练习作品,笔,酒瓶,杯子。注意“翻转法线”和内核的封闭。材质中,多用了噪波+凹凸。原创 2008-05-24 21:03:00 · 3521 阅读 · 1 评论 -
超级玛丽续作正在开发
忙了一阵,最近又有一段空闲时间。想起某个名人说过:“技术不能丢。”又一次拿起了VC,自行开发超级玛丽续作。上次只作了三张地图和简单的攻击,下载量已经近3000。现在,我已经做了五张地图,增加了下水道来切换地图,增加了攻击种类、敌人种类数量。以后还要加两种BOSS。上次普遍反映难度不够,这次一定保证打的过瘾。加油!!!原创 2008-08-08 10:09:00 · 699 阅读 · 0 评论 -
钻石(3D MAX)
原创 2008-05-26 22:26:00 · 1235 阅读 · 2 评论 -
结构(3D MAX)
原创 2008-05-26 22:24:00 · 807 阅读 · 0 评论 -
祝贺CSDN恢复,技术网站怎能停
作为一个曾经的程序员,我时刻牢记各位编程前辈的教诲,编程这东西,一日不练十日空,全靠日积月累。本人目前四万行代码量的积累,才练成这么点入门功夫。虽然我已经转行做别的,还是时常练习编程,做一些游戏,技术不能落下。不管什么原因,技术网站能停吗?原创 2008-08-18 19:48:00 · 538 阅读 · 4 评论 -
超级玛丽增强版
终于写完了,本来要增加很多很多新东西,终于精力有限,或者水平有限,只做这么多。现在还需要好好检查一下,没有什么问题后再上传。也是个规律,每次上传后,总能发现新的BUG。横版过关游戏算是老古董了,但要做好不容易。人外有人。这次开发,在性能上并没有突破。只是在原有的框架上,增加了地图,攻击方式,敌人种类,下水道的进出切换。技术上,主要是支持调整窗口大小。即使窗口最大化,游戏还算流畅。游戏的各个元件还是原创 2008-08-23 17:56:00 · 1424 阅读 · 2 评论 -
超级玛丽增强版新鲜出炉,源码发布
感谢大家对上一个版本的支持,这个版本增加了地图、水管、攻击种类和更多的敌人,支持窗口大小的调整。用VC6制作,包含整个工程。发个截图先: 源码链接:http://download.csdn.net/source/584350欢迎大家多提意见。原创 2008-08-24 14:55:00 · 1713 阅读 · 7 评论 -
小车(3D动画)
初学,大家鼓励原创 2008-05-30 19:09:00 · 1031 阅读 · 0 评论 -
超级玛丽制作揭秘1
两个版本的超级玛丽下载量已达到5000,谢谢大家支持。谁无法下载,请告诉我邮箱,我直接发。现在普遍反映两个问题,一没有帮助文档,二代码注释太少。今天起,我揭秘制作过程,保证讲解到每一行代码,每一个变量。代码我已经发布了,可见做这样一个游戏并不难。今天讲准备工作,也就是所需要的开发工具。代码编写调试:VC 6.0,美术工具:Windows自带的画图(开始-程序-附件-画图)。这是最简陋的开发工具原创 2008-08-30 20:33:00 · 2183 阅读 · 6 评论 -
超级玛丽制作揭秘2
先说一下代码风格,大家都说看不懂,这就对了。整套代码约有3000行,并不都是针对这个游戏写的。我想把代码写成一个容易扩展、容易维护、功能全面的“框架”,需要什么功能,就从这个框架中取出相应功能,如果是一个新的功能,比如新的图像显示、新的运动控制,我也能方便地实现。所以,这个游戏的代码,是在前几个游戏的基础上扩充起来的。部分函数,部分变量在这款游戏中,根本不用,但要保留,要为下一款游戏作准备。只要理原创 2008-09-02 21:48:00 · 1883 阅读 · 5 评论 -
横版过关游戏开发-人物控制
人物控制花费了很多时间,方法有很多。先看一下以前游戏是怎样控制的。比如做坦克大战,地图可以做成二维数组,按方向键移动。坦克的位置信息,可以由数组索引表示(或者加一个偏移量),那么,当按动方向键时,直接修改数组索引就行了。而横版游戏,像超级玛丽这样,主要的运动方式就两种:走、跳。我前两天做的时候,对于每一个方向的移动,都设置了一个状态“向左移”,“向右移”等等。刚开始的时候,运行挺好。结果,原创 2008-06-13 21:20:00 · 1242 阅读 · 0 评论 -
横版过关游戏源码
第一个版本已经出来了,源码已上传到CSDN资源频道。工程包含了图片、代码所有资源,大家多鼓励。链接为“超级玛丽源码” http://download.csdn.net/source/497676原创 2008-06-18 19:41:00 · 1672 阅读 · 0 评论 -
游戏完成,发截图
源码链接: http://download.csdn.net/source/497676原创 2008-06-18 21:15:00 · 989 阅读 · 2 评论 -
超级玛丽制作揭秘3 游戏背景类MYBKSKY
类说明:这是一个专门处理游戏背景的类。在横版游戏或射击游戏中,都有一个背景画面,如山、天空、云、星空等等。这些图片一般只有1到2倍屏幕宽度,然后像一个卷轴一样循环移动,连成一片,感觉上像一张很长的图片。这个类就是专门处理这个背景的。在超级玛丽增强版中,主要关卡是3关,各有一张背景图片;从水管进去,有两关,都用一张全黑图片。共四张图。这四张图大小一致,纵向排列在一个位图文件中。MYBKSKY这个类,原创 2008-09-06 21:32:00 · 1953 阅读 · 0 评论 -
数学家 欧拉
数学研究,这样的研究,高中生可能有兴趣,大学生也许有兴趣。但是,考虑到目前的就业形势,没人会把“数学”作为职业。今天介绍一个创造历史的人,欧拉。对我们这些小程序员来说,很有启发。欧拉(古)(Leonhard Euler 公元1707-1783年)也有翻译为欧勒,18世纪最优秀的数学家,也是历史上最伟大的数学家之一。 1707年出生在瑞士的巴塞尔(Basel)城,小时候他就特别喜欢数学,原创 2008-06-22 22:03:00 · 1135 阅读 · 0 评论 -
横版过关游戏开发-图像处理
谢谢大家支持,我争取写详细点。游戏=图像处理层+逻辑处理层。图像显示方法、技巧很多。这个超级玛丽就用了一种(别的不会),BitBlt“去背”。先说图像资源。每个游戏元素对应多帧图像,所有帧排成一行。各个游戏元素的图像从上至下排列。理论上,可以把所有元素,无论大小,全放到一张位图里。把这张“总图”,放到一个HBITMAP里,只需要按照游戏逻辑层的四个参数,即可完成显示工作,函数如下: vo原创 2008-06-21 22:20:00 · 1197 阅读 · 0 评论 -
超级玛丽制作揭秘5魔法攻击 类MYANIMAGIC
类说明:玩家有两种攻击方式:普通攻击(子弹),魔法攻击(旋风)。这个类是专门处理旋风的。我最初的想法是用一些特殊的bitblt方法制造特效,例如或、与、异或。试了几次,都失败了。最后只能用“先与后或”的老方法。这个类可看成MYANIOBJ的一个简化版,只支持不规则图片的显示。成员函数功能列表:class MYANIMAGIC:public MYBITMAP{public: MYANIMAGI原创 2008-09-11 22:19:00 · 951 阅读 · 0 评论