Posted on 2008-02-10 20:04
AntialiasingMan 阅读(435)
评论(1) 编辑 收藏 引用 所属分类:
VB + DirectX
2008年2月7日,对我来说是一个值得纪念的日子,并不仅仅因为今天是大年初一而已,更重要的是我终于在IT博客网上有了属于自己的博客……这对大多数人来说是极其平常而又自然的事情,但对我而言,意义非同小可!为什么?请看——
本人今年二十出头一点,对游戏开发有着极浓的兴趣,并且正在朝着自己的理想而努力着,虽然这条道路不是一般的艰难,但我是不会轻言放弃的。好了,现在问题来了:我为什么要做游戏呢?仅仅是因为我喜欢玩游戏吗?答案并不仅仅如此!我承认我从小就酷爱游戏,为游戏而着迷,并且5岁左右就在"做"游戏了,不过这个"做"游戏的方式和现在在计算机上的做法完全不同,因为我只是拿麻将当成积木拼成一些东西,每种形状代表不同的含义,最简单的比如:一个竖着的麻将可以代表一个"人";一个半竖着的麻将代表 "子弹",而如果我用手将这颗"子弹" 向着"人"的方向移动的话就代表发射了一颗子弹(以直线方向移动),此时那个"人"是由真实的玩家小朋友控制的,他可以用手移动这个"人"来躲过子弹的攻击……从这些描述中可以发现玩家小朋友使用真的手直接控制"游戏中的人",而我扮演的则是"游戏机"。这里可能会这样的疑问:真实的游戏中会创建一个用于游戏的舞台,你这个咋办,能做到吗?其实这个担心是多余的,我这个"游戏机"会即时生成用麻将构建的简单场景,敌人等,这也就是所谓的游戏关卡了。当然这一切都不像今天的计算机游戏软件那样预先就设计好,到时候读取,而是任凭我自由的想象。
给我自己印象最深的是我"做"的第一个游戏——现在来看此游戏的类型应该属于"第一人称射击游戏",下面是此游戏的配置:家里一块长方形空白平滑地板,一袋麻将和我"这台游戏机"。游戏人数1~4人为宜,具体游戏方式是(游戏人数为1人的情况):玩家小朋友和我这台游戏面对面坐在空白平滑地板的上,具体位置为长方形的两条平行对边上(越远难度越大,游戏难度选项),我"这台游戏机"将一袋麻将全部倒出来,分开放到地板两边,然后先发3颗"子弹",也就是先送3个麻将给玩家小朋友,接着利用堆放在两边的麻将牌竖着放一些"敌人"(效果就像大人打麻将时一样),最后,这个1-1关就设计好了,玩家小朋友就开始玩了,怎么玩那?用真的手拿着"子弹",贴着光滑的地板"发射子弹",然后"这颗子弹"就像保龄球那样朝我"这台游戏机"前面竖着放置的"敌人"射来,哐当,倒下几个"敌人",如果同时倒下的敌人数目超过3个(可以依照游戏难度自定义),那么就奖励3颗子弹(或者你想给玩家小朋友多少子弹也行,但不能离谱。也可以是同时击倒3个"敌人"给多少子弹,同时击倒5个"敌人"给多少子弹……),可能你已经猜到Game Over的条件了,没错,就是当玩家小朋友手里的子弹为0时游戏就结束了。乍看起来游戏规则好像很简单,但其实可以自己细化的,这个只是最基本的框架规则而已,比如,①.可以设计Boss(老怪),怎么设计就看你自己的想象了,我是这样设计第1关Boss的:我用手拿着一个"敌人"(麻将的上半部分),然后有规律的从左到右移动,让玩家小朋友发"子弹"来打(前提是你要中立,^_^),如果玩家小朋友发射的子弹打到你用手移动的"敌人"时,就用手控制这个敌人做一个摔跤的形式,同时口中来一声"游戏音效",接着费一滴血,血条也是由麻将拼成的,可以设计5滴血(第一关不能太难撒),然后BOSS继续做走路状态直到血条费光为止。②.游戏中玩家小朋友可以接到特殊武器:在竖着的"敌人"中间放置一个"背"对着玩家小朋友的特殊敌人(其实就是麻将上有字的一面朝着自己,无字的一面向着玩家小朋友),当玩家小朋友将此"敌人"打倒时就会奖励一颗"溅射弹"(给一个麻将,但是要和普通的麻将分开放),当玩家小朋友使用这颗"溅射弹"的时候(使用方法与普通"子弹"一样,我这台游戏机不傻,用眼睛可以看到何时使用),顺手从两边的麻将堆里拿2个麻将,对着玩家小朋友刚才射击这颗"溅射弹"位置的上方松开手,代表"溅射"。③.……
后来,游戏类型越做越多,竟然也达到跨平台的程度,不仅限于使用麻将,还可以使用中国象棋,雪花积木等东西。如中国象棋,可以在棋盘上设关卡,棋盘格子上可以放"钱",当玩家小朋友走到这个钱上面时就接到了钱,当然这个"钱"有时候并不好接到,我会设计一些谜题的,至于"钱"的用途当然是可以购买东西的(如部队),比如:一个"车"多少钱,一个"马"多少钱,"特殊装备"多少钱,还可以设计成"串平台"的游戏,在棋盘格子上放置麻将敌人……显而易见这款游戏的类型是——"战棋类策略游戏"。
当然,这些"游戏"都是在我小时候玩的,直到上初中时才彻底不玩,因为这些个游戏已经"过时"了,而且人长大了也不会再做这些小孩子时代的事情了,但这些都是我童年美好的回忆。之后时间一下晃到了高中,当时好像有计算机上机考试的,其中有几条题目就是关于VB6的,我们的信息老师根本就没有教我们,直接告诉我们放弃VB编程题,只要把其余的题目做了就可以通过了,高二时我家里才有计算机,当时什么都不会,完全是一个计算机盲,没有办法自学计算机基础,又过了一段时间,家里可以上网了,在网上查到关于VB6的信息,竟然发现用VB6可以做游戏!!!(当时不知道用C++等其它高级语言也是可以的),这个我是想都不敢想的,用这个可以自己做游戏???天哪,于是就自学了VB,但是关于VB游戏开发方面的教程是非常少的,不得已啃国外网站,终于找到了一篇老外写的教程,是简单的桌面类游戏,没有使用DirectX技术,记得名字翻译过来叫"小行星",游戏大概就是控制一架飞机打落下来的陨石,仅此而已,接着我就用笔将此游戏的源代码一行一行抄写下来研究……终于有结果了,按照这个游戏的框架写出了属于自己的第一个小游戏——贪吃蛇XP,这款游戏中的蛇虽然是用点来画得(就是没有用图片),但我倒觉得比我后来做的第二个有图片的小游戏还要更有趣,此贪吃蛇XP游戏以前曾在http://www.gameres.com/上发过,且带源代码,不过这已经是2年前的事了,等过一段时间我会在我的博客上放出这个游戏的修订版本(包含源代码)。又过了好久,我终于知道有DirectX这个东西了,当前在VB6上最高可以使用的版本是DirectX8,虽然在VB.Net中可以使用更高的版本,但我对VB.Net还不太熟悉。所以我疯狂的找关于VB6 + DirectX8 的教程,终于在http://directx4vb.vbgamer.com/DirectX4VB/TUT_DX8Start.asp网站上找到了,而且非常的完整,共有关于DirectXGraphics 的教程27篇;DirectXAudio 的教程4篇;DirectXInput 的教程3篇;DirectXShow 的教程1篇以及DirectXPlay的教程2篇,但都是E文的,高中毕业水平的我能否看懂计算机专业E文呢?答案是未知。
为了童年时做游戏的梦想,我特地在此IT博客网上申请了个人第一个博客空间,请来众多正在阅读本文的网友们做监督,决意要将 VB6 + DirectX8 编游戏的数篇文章翻译和学习进行到底,直至最后!!