满月下的魔术师 满月下的魔术师
他们叫我满月
关注数: 216 粉丝数: 118 发帖数: 7,867 关注贴吧数: 85
军道直拳克里斯,穿林北腿李三光——献给《生化危机》陪伴的童年 “生化危机”蔓延到今天已经快20个年头了。从发售初期在各大权威游戏杂志上都找不到名字的《生化危机》,到如今大红大紫、剑走偏锋的《生化危机6》,不仅仅体现了CAPCOM作为老牌游戏公司独到的营销策略和经营手段,更是十多年来游戏理念日新月异、恐怖游戏市场起落沉浮的缩影。恰逢《生化危机:启示录2》全章节和DLC刚发售不久,于是一时兴起,就以个人化的角度来谈谈这场诞生于浣熊市,并日渐席卷世界各地的”生化危机“。对我而言,真正意义上接触的《生化危机》系列的第一部作品要属《生化危机4》,也正是这一部彻底颠覆了“老生化(4代以前的《生化危机》作品)”的游戏概念。在此之前,《生化危机》系列作品都是主打固定视角,让玩家在压抑阴暗的小环境内时刻紧绷神经,体验始终压在心头、挥之不去的惊悚与恐惧。然而《生化危机4》乃至之后的作品彻底打破了这样的游戏框架,尽管敌人仍然是被剥掉了灵魂的躯壳,但这次迎接玩家的却是全新的越肩视角,生存解谜系统被削弱,取而代之的是酣畅淋漓的战斗系统。而引起游戏理念剧变的根本原因正是玩家群体的多样化需求,在生活节奏日益加快的现代社会,漫长繁琐的流程难免让大多数青年玩家心烦意燥。这一剧变无疑成为了电子游戏史上的里程碑,在为CAPCOM赢得将近400万辉煌销量的同时,《生化危机4》开创的游戏概念也成为了各大游戏产商借鉴并加以创新的典范,对后来以《死亡空间》为代表的一系列TPS大作的诞生打了一抹强有力的催化剂。然而《生化危机》系列真正打动我的地方并不完全在于游戏本身,有很大一部分来自于其对角色的塑造。《生化危机》诞生至今刻画了众多鲜活灵动、血肉丰满的人物,他们当中既有玩家们为之倾倒的人气主角,又有冷酷无情而又令人仰慕的反角。里昂和艾达的姻缘,克里斯和吉尔、皮尔斯的战友情,克莱尔对雪梨母亲般的关爱……直到今天仍是玩家们津津乐道的谈资。在各大游戏论坛,你常常可以看到”如果XX不再登场我就不碰《生化危机》“一类的言论,可见这些角色已不再是由显示芯片绘制的3D图形,他们早已超越次元,牢牢地抓住了玩家们的心。
【转】戒除void main陋习 刚在c++吧看到了一篇文章,觉得很不错。来分享一下,本文版权归蚂蚁的C/C++标准编程以及作者antigloss共同所有,转载请注明原作者和出处。谢谢。 很多人甚至市面上的一些书籍,都使用了voidmain(),其实这是错误的。C/C++中从来没有定义过voidmain()。C++之父BjarneStroustrup在他的主页上的FAQ中明确地写着Thedefinitionvoidmain(){/*...*/}isnotandneverhasbeenC++,norhasitevenbeenC.(voidmain()从来就不存在于C++或者C)。下面我分别说一下C和C++标准中对main函数的定义。 1.C 在C89中,main()是可以接受的。BrianW.Kernighan和DennisM.Ritchie的经典巨著TheCprogrammingLanguage(《C程序设计语言》)用的就是main()。不过在最新的C99标准中,只有以下两种定义方式是正确的: intmain(void) intmain(intargc,char*argv[]) (参考资料:ISO/IEC9899:1999(E)Programminglanguages—C5.1.2.2.1Programstartup) 当然,我们也可以做一点小小的改动。例如:char*argv[]可以写成char**argv;argv和argc可以改成别的变量名(如intval和charval),不过一定要符合变量的命名规则。 如果你不需要从命令行中获取参数,请用intmain(void);否则请用intmain(intargc,char*argv[])。 main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。 如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return0,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在生成的目标文件中加入return0,大概是因为vc6是98年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上return语句了吧!不过,gcc3.2(Linux下的C编译器)会在生成的目标文件中加入return0。 2.C++ C++98中定义了如下两种main函数的定义方式: intmain() intmain(intargc,char*argv[]) (参考资料:ISO/IEC14882(1998-9-01)Programminglanguages—C++3.6Startandtermination) intmain()等同于C99中的intmain(void);intmain(intargc,char*argv[])的用法也和C99中定义的一样。同样,main函数的返回值类型也必须是int。如果main函数的末尾没写return语句,C++98规定编译器要自动在生成的目标文件中加入return0。同样,vc6也不支持这个特性,但是g++3.2(Linux下的C++编译器)支持。 3.关于voidmain 在C和C++中,不接收任何参数也不返回任何信息的函数原型为“voidfoo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回任何信息时可以把main函数定义成voidmain(void)。然而这是错误的!main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的。虽然在一些编译器中,voidmain可以通过编译(如vc6),但并非所有编译器都支持voidmain,因为标准中从来没有定义过voidmain。g++3.2中如果main函数的返回值不是int类型,就根本通不过编译。而gcc3.2则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用intmain。 4.返回值的作用 main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出,否则代表程序异常退出。下面我们在winxp环境下做一个小实验。首先编译下面的程序: intmain(void) { return0; } 然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo%ERRORLEVEL%”,回车,就可以看到程序的返回值为0。假设刚才编译好的文件是a.exe,如果输入“a&&dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return-1”,或者别的非0值,重新编译后输入“a&&dir”,则dir不会执行。因为&&的含义是:如果&&前面的程序正常退出,则继续执行&&后面的程序,否则不执行。也就是说,利用程序的返回值,我们可以控制要不要执行下一个程序。这就是intmain的好处。如果你有兴趣,也可以把main函数的返回值类型改成非int类型(如float),重新编译后执行“a&&dir”,看看会出现什么情况,想想为什么会出现那样的情况。顺便提一下,如果输入a||dir的话,则表示如果a异常退出,则执行dir。 intmain(intargc,char*argv[],char*env[])也不是标准C里面定义的东西~char*env[]是某些编译器提供的扩展功能~用于获取系统的环境设定~因为不是标准~故而移植性差~不推荐使用 本文版权归蚂蚁的C/C++标准编程以及作者antigloss共同所有,转载请注明原作者和出处。谢谢。
【科普】为什么运行程序后一个黑窗口一闪而过? 转自c++吧 为什么会这样?原因简单到有点可笑:因为程序运行结束了 对于控制台程序,操作系统让它开始运行前会为它造一个控制台窗口,在它结束的时候为它销毁这个这窗口.所以,当程序的最后一条语句运行完后,没什么可做了,程序运行结束,窗口就没了 一般做法有这些: getchar()可以等待你输入一个字符,这样可以让程序等待在那 system("pause")执行系统的pause命令,它也会等你 另外还有个特殊的: 而如果你是在IDE里编写完了程序,想要看运行结果,那你可以按Ctrl+F5来运行程序,那样即使你不使用上面的两条语句,也可以看见程序运行完后窗口没有消失 这是为什么呢?对于普通的做法,即按F5,IDE会直接启动编译成的exe,这和你双击一个exe启动它是等效的,而对于Ctrl+F5,IDE做的事有些不一样,它会去启动cmd.exe,也就是什么 命令提示符 那个程序,然后告诉它去运行编译好的程序.cmd.exe的行为是这样的,它启动其它程序时会把自己的这个控制台(它自己也是个控制台程序)借给这个程序使用,你的程序运行起来后就向这个控制台打印东西.等你的程序运行结束了,cmd.exe再得回控制权.注意,这时你的程序结束了,但cmd.exe还没有结束.而cmd.exe有个行为,就是会在它所启动的程序运行完后等待用户按个键.也就是你看见的"请按任意键继续..",或是"Press any key to continue..",显然,这行字并不是你的程序打印的 对于这点,你可以自己启动cmd.exe试试 最后..虽然getchar和system("pause")效果看上去一样,但是..system("pause")是很浪费的,是大材小用.使用getchar()就行了.至于为什么这样,这里就不解释了
谈谈这几天的samp心得 初次接触sa是在学校机房,对于当时已经习惯显卡危机、翔命召唤的我来说,sa的画质绝对是不堪入目。直到这几天PT的服务器公测了,加上之前听说samp的可玩性非常高,于是我这种喜欢热闹的人当然不会错过这个机会。第一次和PT测试服务器时就迷上了samp,尽管已经玩过众多沙盘游戏,但能和朋友一块满世界搞破坏、飙车、冒险、开着飞机狂轰滥炸这还是头一次。下机后竟如饥似渴地期待着下一次搞♂基,当时因为PT要去三亚旅游还有些难过233PT曾说过这么一句话:“我不求钱不求利只求你们好好玩。”我想这寥寥数语可能表达出了所有samp开发者的心声。游戏里的很多操作我们动动手指就能完成,殊不知这一切都是靠开发者们绞尽脑汁编写出的一行行复杂精密的代码凝结而成的。我们不知道他们牺牲了多少娱乐时间、投入了多少精力才换来服务器公测的辉煌成果。但这对于他们来说都不重要了,重要的是我们的欢乐、我们的笑容。他们没有收我们一分钱,他们最渴望的报酬不过是我们能够在服务器里玩的开心罢了。天底下无私奉献的人很多,我们最熟悉的就是无微不至地呵护我们的亲人。尽管是在尔虞我诈的虚拟世界中,也有这么一群可爱的人。可能谈不上“鞠躬尽瘁”,但他们的存在确实使我们的人生更加充实。让我们向这群默默奉献的幕后工作者们致敬!虽然他们中的许多人已经退出了samp的舞台,但他们带给我们的美好回忆将永远珍藏在我们内心深处最耀眼的地方!谢谢你们!
1 下一页