当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 中国人是不甘落后的!让我们协起手来为中国的游戏事业奋斗吧! DOS游戏编程二十一条 (The 21 FAQ of PC DOS GAME) 我在一家游戏公司多年,现就自己的编程经验谈一点体会,希望能对大家有点帮助,本文中所有例子均在WATCOM C/C++ 10.6下调试...
 

 

 ·类型自动转换害死人。。。唉    »显示摘要«
    摘要:用jscript开发asp,不小心把一个connection当作一个毫不相干的类型穿递给了一个毫不相干的函数。。。。结果。。。造成 dllhost 崩溃,却连一点错误提示都没有。唉。。。。。哭 ......
 ·查找某个字段名在某些表    »显示摘要«
    摘要:最近做程序,要把某些字段的批量值修改一下,例如性别代码和id转换,于是写了个函数,来调用。很简单贻笑大方了。create function f_gettablenamelist (@incolumnname as varchar(50)) returns varchar(500) begin --内部变量 declare @column varchar(50),@table varchar(50)......


dos游戏编程21条(转载)
中国人是不甘落后的!让我们协起手来为中国的游戏事业奋斗吧! dos游戏编程二十一条 (the 21 faq of pc dos game) 我在一家游戏公司多年,现就自己的编程经验谈一点体会,希望能对大家有点帮助,本文中所有例子均在watcom c/c++ 10.6下调试通过. 1.找一种好的编程语言: 当然,游戏可以用任何语言编写,这是可以肯定的,我就使用过turbo basic编写过跑马机游戏,还用vb写过一个半成品的网络拱猪游戏,但是,一个好的编程语言能够达到好的效果,这是毋庸置疑的.一个游戏程序员,梦寐以求的就是一个方便.完美.高速的语言. 汇编是一种高速语言,但不够方便,如果要方便,就必须大量使用宏,笔者就曾经在6502汇编语言中大量使用for,next,print等语句,全部是宏,但是相应的内存开销,时间开销都加大了,不划算. watcom c/c++是一种好语言,可以访问大内存,速度快,也够方便,但是调试不够方便,只能用自己写的调试函数解决问题.还有每次运行必须调用dos/4gw这个32位环境程序,既累赘又不方便,还占地方. msc7.0也不错,通过它的虚拟内存机制也可以访问大内存,但可惜是16位仿真的,速度太慢. djgpp也是很不错,关键它是共享的,同时还带有一个alleg的共享游戏库,非常好用,推荐使用,但它生成的程序代码太大,不够优化. 作为游戏程序员,我们追求的就是快一点.快一点.再快一点,如果还有更快的语言,希望大家介绍给我. 2.要写专有程序,不要写通用的,通用,意味着慢,哪怕下次重新来过,也不能为了下次耽误这次.同理,凡是系统给你的函数,调用,要有坚决不用的思想准备,要自己写一套. 3.写出来的程序,每秒钟必须刷屏70次以上,再通过时钟限制在30次(不抖),剩下的时间,就是运行你的游戏程序内容的时间,算一算,不多. 4.要有引擎的概念,引擎包含系统底层的程序,数据结构,调用方法等,这些直接限制你以后的游戏好不好编,一般说来,我们做一个游戏半年时间,其中两个月编引擎,两个月编游戏,剩下两个月调试,可见引擎的重要.永远记着,你写的程序,就计算机而言,就是在搬数,把一堆数据提出来,处理一下搬到另外一块地方,就这么简单,那么,搬数的方法有多重要,你知道了吧. 5.尽量少用乘除法.浮点数,必要时使用移位乘法.这里给一个移位乘法的例子,大家可以参考: /*-------------------------------------------------------------------------------*/ //xiaoge made under watcom c/c++ 10.6 /*-------------------------------------------------------------------------------*/ int count_offest(int _width,int x,int y) //移位乘法计算显示偏移值 { int mode[17]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536}; int i,offest=0; for (i=16;i>=0;i--) { if (_width>=mode[i]) { offest+=(y<<i); _width-=mode[i]; if (_width<1) break; } } return(offest+x); } /*-------------------------------------------------------------------------------*/ 结果=屏幕宽度*y+x.(这仅仅是一个移位乘法的例子,真正用时,要根据具体情况选择使用) 6.没人会用数学描述去写一幅游戏图形,所有的图形都来自于美工画的pcx,bmp图形,去找一个美工,或者偷一批图形吧.读写pcx,bmp的函数是必须的. 7.游戏程序员语录:给我一个画点函数吧,我能描绘出整个世界.
...   下一页
 ·随机生成密码函数    »显示摘要«
    摘要:function makepassword(byval maxlen) dim strnewpass dim whatsnext, upper, lower, intcounter randomize for intcounter = 1 to maxlen whatsnext = int((1 - 0 + 2) * rnd + 0) if whatsnext = 0 then &acut......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE