JavaScript游戏玛丽医生Dr Mario

在很久很久以前,我们这些80后的小朋友终于玩上了自己的小霸王游戏机,超级玛丽,玛丽医生,雪人兄弟,诸多经典游戏让人无法忘怀,成为一个心结!

在完成了俄罗斯方块后,这是我写的又一个JavaScript游戏,玛丽医生Dr.Mario

javascript dr mario玛丽医生

javascript dr mario玛丽医生

游戏方法:

3颗相同颜色的药丸与同色的病毒在横向纵向上相连时,则可杀死该病毒得分。

方向键:上:药丸形状及颜色切换,左、右、下:左移、右移、下落。

实现流程:

药丸落下 -> 边界检测 -> 不可再动 -> 加入到groups -> 杀病毒检测 -> 消除 -> 重新整理groups -> 无支撑的药丸掉落 -> 回到杀毒检测,直到所有无支撑药丸掉落结束 -> 下一个

Groups概念:

在该游戏的实现中, 出现了一个groups的概念,它是一个数组,它记录了所有堆积的元素,这些元素是活动的,会在消除某些元素后掉落,所以,比较麻烦。

groups记录着每次掉落元素的坐标及样式,形如:[[[0,0,'red_left'],[0,1,'blue_right']],......]

在每次消除病毒后,它需要维护一次,维护的过程是,先将其按照每个元素的第1维进行倒序排列(用于保证越靠下的药丸在后面最先掉落),然后遍历每个元素,进行整理,如:某个与元素的一半被消除了,或者两个元素都被消除了,等等。

几个算法:

在该游戏中需要优化的几个算法:

取横向、纵向N个以上连续相同的内容(实现参见:http://www.jslab.org.cn/?tag=getsamelistfrommartix

边界检测(与俄罗斯方块的边界检测算法类似,采用位与的方式)

groups维护(遍历数组)

如果能够优化以上算法,则程序运行效率会更高!

其他操作类似于俄罗斯方块,具体情况,可以去看它的源代码!

现在就来玩玩看这个JavaScript实现的Dr.Mario玛丽医生吧 ^_^



[本日志由 dh20156 于 2009-10-13 09:23 AM 编辑]
文章来自: DHTML精英,WEB前端专家!
引用通告: 查看所有引用 | 我要引用此文章
Tags: 游戏 玛丽医生 DrMario
评论: 6 | 引用: 0 | 查看次数: 2814
回复回复ZZW[2010-05-11 01:49 PM | del]
哇,要好好研究下···不过请问源代码在哪?
引用来自 dh20156 dh20156 于 2010-05-12 09:13 AM 回复
查看源文件吧 ^_^
回复回复翔子[2009-10-21 03:18 PM | del]
以前常玩 通关了  blog.ucgm8.com
回复回复上帝的私生子[2009-10-15 09:32 PM | del]
我崇拜你
回复回复BunBun[2009-10-14 09:23 AM | del]
好牛B
回复回复cos.x[2009-10-13 02:09 PM | del]
牛B
回复回复gg[2009-10-13 12:28 AM | del]
玩死机了
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭