回 帖 发 新 帖 刷新版面

主题:俄罗斯方块3D&浅谈游戏编程架构

呵呵,虽然一直想写大的游戏,可始终是力不从心。所以我还是从小游戏开始。花了两天时间写了一个最经典的,也是很多很多人都曾经做过的俄罗斯方块。虽然只是一个小游戏,但是我想到了很多。下面谈谈所感所悟,不足之处,请版主王子以及wwjjw大师指正。

这一会,我把整个程序分成了逻辑层,数据结构层,系统层,用互交互层和图形层几大块。我首先放开其它的不管,先做逻辑层,而且保证逻辑层的独立性,也就是说,逻辑层不管其它的东西,放到哪都可以用。

这样一来,整个程序就十分的清晰明了了。下载包里有我的源代码。在很多这类游戏里面,都用到了大量的分支判断语句,包括那些经典的俄罗斯方块算法。可是在我的程序里,你却看不到大串的分支判断语句(下载包里有源代码)。为什么呢?因为我把下落的方块定义为一个类,而静止的方块定义为另一个类。当方块掉落到方块堆里时,可能会发生“坍塌”,这也是这个游戏中最难的解决的一个问题,而我则把“坍塌”的方块加入到下落的方块中,这样就问题就自然解决了!这样很好的做到了代码重用,同时也避免了复杂的算法!我想,这就是面向对象编程的好处吧。

我这个小游戏叫“俄罗斯方块3D”,你一定奇怪,为什么不叫做“3D俄罗斯方块”呢?人的思维总是这样,总是首先想到事物的外表,当我们有写游戏的冲动时,我们脑子里总是充满了游戏的画面,玩游戏的感觉吧。可是编程却不应该从表面做起,编程就是把一个问题用程序语言描述给电脑。所以,编程应当从逻辑做起,程序的逻辑层就好像一栋大楼的地基,大楼的栋梁,只有坚固的逻辑层,才能建立起健壮的程序!

而图形层,是表现逻辑层的。图形层用什么来实现,逻辑层不管。我用D3D来实现的,用别的一样可以。

呵呵,点点感悟,望指正。

回复列表 (共15个回复)

11 楼

傲雪威龙,才是真正的高手哇!

12 楼

小小C才是真正的高手哇

13 楼

楼上的朋友说得对啊,我只是一个垃圾,一个菜鸟,看了楼上朋友做的QB游戏,感觉到自己的渺小啊

14 楼

QB伟大啊,BASIC好啊,C和C++全是垃圾,学了BASIC,什么也不用再学啦!

15 楼

[quote]QB伟大啊,BASIC好啊,C和C++全是垃圾,学了BASIC,什么也不用再学啦![/quote]

大家冷静一下,都不要太偏激了。
一种语言能够延续至今,说明其自有存在的价值。
我认为,语言之间并无优劣之分,只有使用它们的人才有优劣。
我们可以用所谓“垃圾”的语言来开发游戏,这不重要,只要做出游戏的品质不“垃圾”就行了,不是吗?
我在 IT 行业也混了几年,其实,很多软件(包括游戏)的优劣并不在于编程技术的高低,而取决于其设计思路(这和代码是无关的)的好坏,用户并不关心软件以什么技术来实现。他们只在乎这个软件是否合用、是否好用,仅此而已。
所以,过分强调编程技术,而忽略了游戏设计,是毫无意义的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册