下面的俄罗斯方块的旋转算法组合到一起,不可以旋转任何俄罗斯方块的旋转算法。

方块 - 小游戏搜索 - 2144小游戏
找到方块相关游戏594个
列表小图大图
评分:3.63人气:567406
本款游戏是国外非常火爆的益智游戏,讲述的是盒子先生和盒子先生的影子相互配合,克服各种机关陷阱,为了打开那个游戏中介绍的“另人愉快的盒子”,而踏上的艰苦旅程。这个类型的游戏现在无论在国内还是国外都非常的流行,我...
评分:3.23人气:186041
键盘方向键控制,↑键更换方块角度,空格是加速下降,开始按左边那个蓝色框。
评分:4.13人气:134923
一脸正气的方块小子参加了忍者村的训练项目,那就是爬楼,不仅要懂得飞檐走壁,还要如何运用自己的影子分身术去闯过每一个关卡。楼顶有一只七彩小鸟,只要寻找到宝箱,然后释放小鸟即可过关,快来体验下吧!一款敏捷小游戏—...
评分:3.83人气:8781
方块冒险2:一款很有趣的冒险闯关小游戏,这是该系列的第二部,游戏中,玩家要帮助立方体小方块躲避各种怪物,越过重重障碍,成功到达终点,顺利闯关,并且过程中要尽可能多的收集星星,注意,要根据游戏下面的时间条让道路...
评分:3.63人气:60347
非常有特色的消方块益智游戏,游戏创新地使用画画的方式来消除方块,让你动手又动脑。你可以用鼠标可画出一条彩色方块,并消耗一定的墨水,方块自下而上自动发射,遇到颜色相同的方块就抵消,并得到墨水奖励。游戏一开始的...
评分:4.13人气:333971
机械城市中居住着一个机械智能吸盘,有一天吸盘听说传说中有一个机械宝藏迷城,那里有许多的宝藏和未知的秘密,于是喜欢冒险的吸盘开始了机械迷城寻宝之旅,机械迷城中机关重重,吸盘能否利用自己的智慧成功的逃离这些障碍...
评分:3.63人气:30086
彩色方块II小游戏:如果你同样也喜欢连连看的话千万不要错过这款游戏,你的目标是寻找同色的砖块或是相同符号的砖块。
评分:4.03人气:59620
绿方块回家小游戏。绿色小方块想要回家,它的家在白色的区域。点击消除其他的绿方块,使绿色小方块坠落到白色区域即可进入下一关。简单好玩过关小游戏,打发时间的朋友可以来玩下。
评分:3.83人气:197459
方块头消消看,一款画面非常精致的消消看小游戏,并且游戏有不少创新亮点。玩家可在游戏中体会嘿嘿。友情提示:点击相连三个以上的方块头即可消失;分数达到一定数量右侧栏会生成各种好玩道具,点击道具并拖动到方块内,即...
评分:3.63人气:82433
方块盖高楼,一款好玩的物理堆积休闲小游戏,通过你的智慧堆积黄色的方块,使之非常牢固,并达到一定高度。而且还要能够经得起黑球的袭击。这样建筑才算合格。友情提示:鼠标点击选择要用到的方块,鼠标移动到线条以上,点...
评分:4.33人气:78813
圆球和方块小游戏。一款好玩有趣的敏捷过关类游戏,游戏的主角是圆球和方块。你的任务就是将蓝色的圆球方块运送到指定的位置,红色的圆球方块要甩出屏幕。来挑战一下吧。游戏中,鼠标点击拖动旋转木板,点击圆球或方块可使...
评分:3.43人气:4035
评分:4.03人气:3113
一款新颖的小游戏,按下任何一个位置横竖两条线上所有的方块都会改变,在这个情况下要消除所有绿方块可不是件容易的事,小伙伴来一起试试吧。
评分:4.03人气:5764
红方块遍布在空间的各个地方,它们破坏了这里的平衡,我们要把它们全部击碎,虽然它们躲的地方很诡异,不过难不倒我们。
评分:4.03人气:3212
方块移动消除,一款好玩的消除游戏。与其他消除游戏一样,点击颜色相同的方块即可消除,尽量消除尽可能多的方块取得更好的成绩。
评分:4.03人气:2596
俄罗斯方块的另类玩法,按住鼠标不动,在方格上画出要求的图形,填满一行则消除。在原有基础上进行创新,成为一种新的游戏。十分新奇的创意,给玩家一种眼前一亮的感觉。不一样的玩法,不一样的感受,尽在消除方块。
评分:3.73人气:7438
一款简单的小游戏,你的目标就是斩杀更多的方块人。许多臭名昭著的方块人都会来围攻你,而你只有一把长刀用来抵御敌人,想要获得胜利,就必须得用好这把刀。加油吧!
评分:3.73人气:8359
方块变变变,你变,我变,大家变!点击变换方块的形状,让它们滚落到药水旁边,并且接住五角星即可过关!祝你好运!
评分:3.93人气:16448
打方块怪脸小游戏:这个小游戏属于打砖块类型的经典小游戏,这款游戏需要玩家有着敏捷的手法,喜欢的朋友可以试试。
评分:3.73人气:10690
方块撞撞看小游戏。非常有创意的一款小游戏,类似于消消看,但是加入了射击的元素。游戏中鼠标调整角度力度,发射方块。撞向相同样色的方块即可消除。
评分:3.43人气:3669
一款非常绚丽的乒乓球小游戏——方块乒乓球。游戏中有一个特色,在某一方的区域内会出现一个黑洞,当球经过黑洞时就会改变路线,让对手或你措手不及,快来体验下吧!看看你是否能战胜对手。
评分:4.13人气:4202
立方世界,满布矩形硝烟,以酷似乐高积木的立方图形为主调的《方块人塔防》,是一款传统而典型的塔防作品,充满策略元素,略带复古味道。一般的塔防作品都与“操作技巧”无缘,但本作稍有不同。触屏选择士兵(防御塔),放置...
评分:4.03人气:1769
茫茫人海中谁才是我的真爱呢?现在就让我们大家一起帮助这个红色小方块寻到他的真爱吧,游戏的操作很简单,根据感应的提示来定位需要寻找人的方位,但是要小心敌人哦!
评分:4.03人气:31098
撞飞方块人,一款设计精巧的物理小游戏。利用每一关卡提供的圆球道具,将方块人打出屏幕外,即可过关。合理运用每种属性不同的圆球可以帮你更快的过关。
评分:3.93人气:15412
一款比较考验你观察能力以及物理平衡的小游戏——方块快刀手。你一共有三次切割的机会,必须要将红色方块切割并且坠入底部,达到左侧底部target所规定的百分比才能过关。快来挑战一下吧!
评分:3.93人气:3602
炸飞方块头小游戏。一款有趣的物理类游戏,游戏中放置炸弹,炸飞所有笑脸并达到指定分数才能过关,后面的关卡有一定的难度,欢迎来挑战!提示:炸弹是消耗金钱的,黄色方块不能消灭。第三关可用鼠标点击选择左上方的炸弹,...
评分:4.33人气:9539
失重的方块小游戏。话说,这里是一个失重的空间,里面所有的物体都不能用常有的控制方式来移动。而游戏的目标就是将方块们移动到一起。你可以来挑战一下。其实没你想的那么难哈哈。
评分:3.83人气:788
一款敏捷小游戏。游戏中,黑色方块头忍者完成学业,踏上了他的复仇旅途,快来帮助他越过重重障碍,躲避危险,消灭所有的敌人吧,注意,每个关卡中小忍者的移动次数有限哦。
评分:4.43人气:27214
方块水果派是一款非常解馋的下午茶点心哦,不仅做饭简单,味道也是相当的赞哦,想知道它是怎么做出来的吗?那就一起来看看它的制作过程咯!
评分:3.63人气:3496
鼠标移动控制方向,点左键射击温謦提示:“方块的世界2小游戏”对电脑硬件配置要求较高,特别是3D效果!第一次玩“方块的世界2小游戏”,请下载插件:在线下载
详看“帮助”
评分:2.53人气:1848
鼠标移动控制方向,点左键射击温謦提示:“方块的世界1小游戏”对电脑硬件配置要求较高,特别是3D效果!第一次玩“方块的世界1小游戏”,请下载插件:在线下载
详看“帮助”
评分:4.83人气:7046
很好玩的弹球游戏,是弹球撞方块的第四部。喜欢玩弹球的朋友们可不要错过喔~
评分:4.13人气:231481
一款非常有特色的消除类游戏,把传统的消除类游戏框架旋转了45度,变成斜向的了,还结合了拼图游戏,欣赏著名景点的图片,建筑,纪念碑。著名的景色会使你大饱眼福,快来试试这种新玩法吧!~
评分:4.33人气:7135
小方块战争2小游戏:在这个表面布满魔法能量方块的星球上,居住这一群靠着方块活着的原著居民,直到有一天来了一群抢夺方块的外星人。战争再次降临!尝试占领比敌人更多的方块!
评分:4.13人气:38334
蓝色方块脸2小游戏:蓝色方块脸第二部,游戏画面和游戏难度都有提升,希望玩家喜欢!很简单的小游戏,通过点击消除一些横木来使蓝色方块安全的落到蓝色木板上。加油哦!
评分:4.23人气:14030
这是一款非常不错的3D小游戏,天上会不断的掉下带有数字的小方块,你的任务就是想尽一切办法把方块撞出桌面。快来挑战下你的极限吧!注意:有时间限制的哦。
评分:3.93人气:49553
蓝方块要回家小游戏。蓝方块要回家,大家帮助他扫清回家的障碍吧。点击消除绿色的方块,是蓝方块滑动。注意,一定要小心红方块这个坏家伙!
评分:4.13人气:71465
射击方块魔怪小游戏:圆球王国来了一群方块魔怪他们破坏了圆球王国原有的祥和时间,无奈的圆球国挑选出不同属性的三名圆球勇士开始除魔远征!射击方块魔怪小游戏是策略过关小游戏,不知道玩家你能过几个关卡呢!
评分:4.23人气:20772
很流行的方块游戏!空格加速,方向键控制!
评分:4.33人气:2846
绿方块小枪手小游戏:绿方块因为某些原因它愤怒了,它开始报复那些破坏它幸福生活的小怪物!
评分:3.53人气:32170
新可爱小方块小游戏:新版的可爱小方块小游戏哦,游戏中增加了几种游戏模式,希望大家喜欢啊!好可爱的小方块呀,有没有空余时间呢?如果想打发下时间,就来看看这款可爱小方块消消看吧。规则很简单,点击三个或者三个以上...
评分:3.63人气:22824
游戏中小方块的要是不见了,他必须找到钥匙才能回家,注意不要掉下去哦~慢慢来不要着急,一定会拿到钥匙的~
评分:4.03人气:0
一款非常好玩的敏捷类小游戏。当你的注意力高度集中观察于小飞镖的走势时,你的神经会处于紧张状态,所以再这样的精神状态下,会导致犯错。游戏中我们要控制小方块躲避飞镖,难度会随着躲避的飞镖数量而增加。你有信心躲得...
评分:3.83人气:16200
方块脸消消看小游戏:这是一款非常可爱的消消看小游戏,玩法非常的简单,但是游戏角色非常有创意哦,都是一些搞怪的方块~
评分:4.23人气:7866
独眼方块平衡小游戏。一款简单的物理平衡游戏,游戏操作性很强,需要键盘操作。方向键控制位置移动,空格键投放方块。喜欢玩物理游戏的朋友可以来挑战下高分。
评分:4.23人气:5655
小方块找朋友:在彩色的方块世界中有着这样一个可怜孤独的无色方块,它一个人没有伙伴,现在你需要为它添加上不同的颜色,让它能够找到属于自己的伙伴,赶紧一起来帮助它吧!
评分:4.03人气:1848
这是一款非常好玩的冒险小游戏。游戏中小方块的爸爸被坏人抓走了,我们得帮助小方块找回他的爸爸。小伙伴们快来帮帮小方块吧。小提示:途中的格子会掉下来,另外还要注意躲避怪物,碰到怪物就会死。
评分:3.73人气:8030
方块小人激斗,一款简单的单人格斗小游戏。在方块小人的学校里,一群邪恶的白色方块人准备计划围殴一位健美教练。虽然敌众我寡,但是这位教练还是想要教训那帮小子,快来和教练一起教训邪恶小子吧!注意:消灭敌人后会掉落...
评分:4.33人气:165789
方块超人无敌版小游戏:方块超人无敌版,人物生命值无限,无惧火焰伤害,无论任务是否完成,目的地关卡都将解锁,希望大家在游戏中玩的愉快哦!当人们陷入危机时,超人总是会在最危险地方最紧张的时刻出现,解救受困的人们...
评分:3.83人气:14287
暗夜乒乓方块小游戏。乒乓方块类游戏注重的是你接球的反应以及回击角度的制造,本游戏加上了许多的特殊方块,让你的球球可以变成发火模式横行无阻或是吃到最终过关炸弹直接炸光。使用鼠标拖曳反射飞行器,在暗夜中不断反射...
评分:3.83人气:29987
小方块一家人快乐的生活在一起,小方块们渐渐的长大了,然而方块妈妈却越来越老。有一天方块妈妈看到一块饼干,她很想吃到。但是由于年龄太大了怎么也吃不到,小方块们都是孝顺的孩子,大家一起看看小方块如何把饼干拿到并...
评分:4.63人气:3055
独眼方块世界:独眼方块迷失了回家的路,让我们一起来帮助它找到回家之门吧!小心怪物的攻击哦~
评分:3.73人气:9759
一款九宫格方块消除游戏,清爽的画面风格玩起来很舒服,游戏规则也很简单,上下两个相连的相同颜色的方块就可以消除,每关都有特定的要求消除的位置,而且过关后可以选择是否清空版面。
评分:3.73人气:14086
彩色九宫方块的后续之作,觉得这个游戏有点小版图,大智慧的味道,所以还是继续推荐给大家。而新的一集,除了Normal 模式(一定要在黑色方格处消除过方块才过关)外,还有纯消遣的Relax 模式,纯属让你享受消除方块的快感,...
评分:4.03人气:23798
旋转方块。连接智慧方块2,游戏的第二部,画面做的更加精致,操作更为流畅。游戏中根据中间大色块的颜色,和周围四个边框的颜色,然后使用颜色块相连。比如,中心大色块为黄色,边框为黄色,然后你再用黄色的块使之相连即可...
评分:3.83人气:122205
悬崖方块消消看小游戏,一款很有创意的消消看小游戏。游戏竟然发生在悬崖边上,如果你点击消除的不够快,方块掉入悬崖游戏就结束了。规则很简单,点击两个或者两个以上相连的方块,即可消除。注意使用炸弹方块哟。
评分:3.73人气:92549
超级玛丽方块版:这是超级玛丽的改编版本的小游戏,游戏的风格和画面都来自经典的超级玛丽哦!希望玩家们能喜欢!
评分:4.13人气:121753
你要做的就是把可爱的海绵宝宝堆在一起,保持平衡别让他们落到屏幕外, 即可过关!喜欢玩超级堆积木1,超级堆积木2,快速堆积等游戏的你,不可错过这款海绵宝宝堆方块小游戏呀!这个游戏有100关!100关哦!100关哦!在这个类...
评分:3.73人气:63875
立体方块消消看是一款益智类游戏。这是一款十分有难度的游戏。在一个立体的平面上,有一个正方型的砖墙。每一次你能在砖墙上放下2块新砖,当然砖是有颜色的。当竖的一排砖有3块同样的颜色时,它们就会消去。黑色的砖是你接...
评分:3.53人气:69222
好玩的水晶方块消消看游戏,漂亮的水晶方块,消除的声音也是脆脆的,而且可以自由移动消除,感觉非常不错哦。
评分:4.03人气:83005
红色和黄色方块小果冻是一对很好的对手,他们无时无刻不在相互的较量,显示自己的强势。日子就在他们不断的争斗中渡过,每天都想着不同的方式去击败对方。
评分:4.13人气:71888
色彩汽车取方块:在有些的时间内,控制路口转向和红绿灯来调整色彩汽车的路径去取相同颜色的货物,同时还要保证交通的顺畅,如果交通发生拥堵使汽车发生事故,任务也将失败哦!
评分:4.03人气:20638
游戏介绍:海底动物也学会了人类的游戏?俄罗斯方块,不同的是,他们是用自己的身体来叠方块的哦。
操作指南:方向键操作。
评分:4.43人气:2127
蓝色方块回家记小游戏。聪明笑脸小方块被关到了一个非常奇幻的房子里,在这里只要方向键控制移动。移动就必须要遇到障碍物才能停下,想想办法怎么让笑脸方块顺利回到家。
评分:4.33人气:23513
游戏的规则很简单,只要有两个或者两个以上相同的方块在一起就可以消除掉,直到没法在消除的时候游戏重新开始!
评分:3.73人气:37669
彩色方块消消看:一款与传统消消看与众不同的小游戏,里面有五彩缤纷的小方块,有时候还有出现红色的小心,很有意思奥,喊上你的小伙伴一起来挑战吧!
评分:3.83人气:15997
方块钻石消消看:一款画面精美的消消看小游戏,游戏中有各种颜色的宝石,这些宝石光艳照人。你需要做的就是运用鼠标点击两个相同的宝石即可消除,组合消除的得分更高奥。喊上你的朋友,一起来比比看谁的得分高吧!
评分:3.53人气:2490
方块超人上高塔:为了使身体更加强健,方块超人每天都要上到100层的高塔上,但是,有坏人想暗算方块超人,在塔中设置了很多机关,请你帮助方块超人成功躲过这些机关,成功的登上100层吧!
评分:4.03人气:7706
方块糖果消消看:帮店里的老爷爷收拾糖果,按相同的属性让他们回到相应的展架上。传统消消看玩法,点击属性相同的相连糖果,进行消除,基于Box2d的物理引擎,让糖果有更逼真物理效果,每局都有十次,通过,摇一摇按钮对糖果...
评分:3.63人气:36511
可爱的方块,开心的方块,生气的方块等等,这些表情丰富的方块便是今天游戏的主角了,来同它们一起来玩消消看游戏吧
评分:3.93人气:20320
一个界面精美的塔防小游戏。防御武器都是水晶方块。画面清晰合理。试下你的防守能力吧。
评分:3.73人气:14593
企鹅方块消消看,一群企鹅被方块包围了,赶快消除方块解救它们吧!要根据游戏下方提示的方块,按顺序点击消除方块,点击方块小鱼可获得分数哦。在游戏限定的时间内,消掉方块,解救企鹅。挑战更高分数吧!
评分:3.73人气:2076
方块先生选关版:关卡全开,按2进入下一关。方块先生是一个很快乐、很喜欢冒险的方块,他有一个神奇的功能就是他可以变身成为小球和方块,这一天方块先生准备开始新的冒险,这一路上将会有很多的难关和他相遇,方块先生能否...
评分:3.63人气:20822
叠方块选关版,关卡全开。一款非常好玩的益智类小游戏,你需要快速的将不同颜色的方块正确的拖入白色区域内去覆盖它。快来挑战一下吧!看看你能玩得过几关。
评分:4.03人气:9834
使用鼠标点击要移动的方块,再点击要移动的空地,就可以完成移动。游戏中你需要将相同的五个方块连成一排或者一列,这样就可以消去,把画面内所有的方块消除就可以过关。当方块布满所有区域的时候,游戏结束。
评分:4.33人气:32313
时间方块消消看:你可以点击相同图案的立方体方块进行消除,在规定的时间内消除所有的小方块即可过关,很不错的消消看小游戏,喜欢的朋友快来挑战吧!
评分:4.33人气:7547
小生物方块变成冰冻的方块可以轻易的滑入洞穴,帮助小方块并到达他的目标。但是要注意每一关都有机关陷阱!游戏中你要先把小怪变成冰,根据不通关卡,可以选择不同的应对方式,你可以点击电风扇,借助他的风力回到洞穴,也可...
评分:4.03人气:18546
艾莎进入了一个拥有各种魔幻方块的彩虹岛,她要拿到钥匙才能开启魔幻之门,一起来帮助她吧!
评分:3.63人气:10075
变换方块选关版:关卡解锁,自由选关!这是一款极具挑战性的笑脸小球游戏,游戏中一共有20关,看你能不能冲过最后一关?
评分:3.03人气:2257
这是一款益智类小游戏,游戏中你要先把白色方块消毁,如果白色方块还有的时候红色方块就落地,那这样的话你就输了,赶快来挑战下吧!
评分:3.83人气:21866
小方块探索迷宫小游戏。倾向于益智类的闯关小游戏,非常不错的哟。话说,蓝色的小方块小弟来到一个神秘的迷宫,他在这个迷宫中需要找到必须的物品才能够顺利的离开这里,这些物品究竟会藏在什么地方呢?大家一起来和方块人...
评分:4.53人气:7914
方块好友无敌版:无敌版中1键下一关,2键增加生命。小方块们外出游玩了一天现在到该回去的时候了,可是它们在他们回去的途中却遭到大量邪恶红色方块的阻拦,现在我们就去帮帮脱离那里阻拦,回到各种父母的怀抱中吧!!
评分:4.03人气:198
方块先生是一个很快乐、很喜欢冒险的方块,他有一个神奇的功能就是他可以变身成为小球和方块,这一天方块先生准备开始新的冒险,这一路上将会有很多的难关和他相遇,方块先生能否克服这些难关呢?让我们一起去帮助他吧!
评分:3.03人气:7800
游戏与其他俄罗斯方块玩法相似,左右键移动,上键变动位置。
热门推荐游戏
热门相关排行热门搜索:
您的位置: -&
立体旋转方块
游戏大小:2.7MB
游戏语言:英文
游戏类型:
更新日期:
游戏环境:Win7/Vista/WinXP/
【立体旋转方块游戏截图】
【立体旋转方块介绍】
《立体旋转方块》其灵活的操作,不但趣味性十足,而且还会考验大家的脑筋。
重要提示:
此款游戏需在游戏盒环境下运行使用,游戏盒会随此游戏一起安装。
立体旋转方块全部攻略
游戏标签:
玩过立体旋转方块的人还玩过
大小:439KB
大小:8.7MB
大小:13.91GB
大小:1.28GB
大小:5.48GB
休闲益智/51.2MB
休闲益智/12.4MB
休闲益智/302.4MB
休闲益智/15.10MB
休闲益智/1.35MB
休闲益智/11.2MB
休闲益智/7.99MB
休闲益智/105.01MB
单机游戏排行榜
大小:2.7GB
大小:539.2MB
大小:5.0GB
大小:2.16GB
大小:505MB
大小:4.6GB
大小:304MB
大小:289.2MB
大小:4.03GB
大小:1.6MB
大小:3.41GB
大小:63.0GB
资源统计:无插件软件:186501个 无病毒软件:186813个 昨日已处理147个带插件、病毒的软件
本站总软件:186813个 软件总下载次数:22.84亿次
软件教程文章:103202篇 总浏览次数:3.367亿次丧心病狂羊哥方块(俄罗斯方块改造版) - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 17时,
完整游戏包下载(包括背景和音乐):V1.1版&/s/1jGj4rfK&提取密码:&rm7t1、根据俄罗斯方块定制改造2、丧心病狂之处在于:只保留四方块和长条(不要以为容易哦)速度较快,随着积分增长会加速3、音乐动感,背景绚丽4、像嚼了炫迈一样,根本停不下来(放在内网服务器上,小伙伴们一起玩吧)下载后,打开“index.html”即可,方向键控制,游戏结束后F5&刷新重新开始(会保留最高成绩),如果你在游戏未结束的时候F5的话,试试就懂了
代码片段(5)
1.&[图片] 游戏画面.jpg&&&&
2.&[图片] 游戏画面2.jpg&&&&
3.&[图片] 目录结构.jpg&&&&
index.html&~&1KB&&&&
&!DOCTYPE html&
&!--blog:http://my.oschina.net/bluefly/--&
&!--Code:http://www.oschina.net/code/list_by_user?id=2008177--&
&meta http-equiv="Content-Type" content="text/ charset=utf-8"/&
&title&丧心病狂羊哥方块-beta&/title&
&script type="text/javascript" src="ygfk.js"&
&body style="background-image:url(back.jpg);background-size:background-attachment:"&
&h1 style="color: margin-left: 16%; text-shadow:-8px 6px 2px #567"&丧心病狂羊哥方块&/h1&
&h3 style="color: margin-left: 12%"&战绩:&span id="myScore"&&/span&&span style="color: margin-left: 16%"&最高战绩:&/span&&span id="maxScore"&&/span&&/h3&
&canvas id = 'myCan' style="margin-left: 14%"&
&audio id="backmusic" class="margin" controls="controls" autoplay="autoplay"&
&source src="backmu.mp3" type="audio/mpeg" /&
&style type="text/css"&
audio.margin {margin-left: 16%; }
myMuc=document.getElementById("backmusic");
myMuc.loop=
ygfk.js&~&16KB&&&&
*blog:http://my.oschina.net/bluefly/
*Code:http://www.oschina.net/code/list_by_user?id=2008177
* 本游戏基于HTML 5、JavaScript来完成。
* 本游戏主要使用了canvas组件来绘制游戏界面,
* 使用了Local Storage记录游戏状态
var TETRIS_ROWS = 19;
var TETRIS_COLS = 14;
var CELL_SIZE = 24;
// 没方块是0
var NO_BLOCK = 0;
var tetris_
var tetris_
// 记录当前积分
var curScore = 0;
// 记录曾经的最高积分
var maxScore = 0;
var curScoreEle ,
// 记录当前是否游戏中的旗标
var isPlaying =
// 记录正在下掉的四个方块
var currentF
//方块下降速度初始值
var mySpeed = 100;
// 该数组用于记录底下已经固定下来的方块。
var tetris_status = [];
for (var i = 0; i & TETRIS_ROWS ; i++ )
tetris_status[i] = [];
for (var j = 0; j & TETRIS_COLS ; j++ )
tetris_status[i][j] = NO_BLOCK;
// 定义方块的颜色,可以增加颜色编码组合
colors = ["#fff", "#f00" , "#0f0" , "#00f"
, "#c60" , "#f0f" , "#0ff" , "#609"];
// 定义几种可能出现的方块组合,在这里可以添加其他方块组合,比如Z啊之类的
var blockArr = [
// 代表可能出现的方块组合: 田
{x: TETRIS_COLS / 2 - 1 , y:0 , color:1},
{x: TETRIS_COLS / 2 , y:0 ,
{x: TETRIS_COLS / 2 - 1 , y:1 , color:1},
{x: TETRIS_COLS / 2 , y:1 , color:1}
// 代表可能出现的方块组合 : 条
{x: TETRIS_COLS / 2 , y:0 , color:2},
{x: TETRIS_COLS / 2 , y:1 , color:2},
{x: TETRIS_COLS / 2 , y:2 , color:2},
{x: TETRIS_COLS / 2 , y:3 , color:2}
{x: TETRIS_COLS / 2 - 1 , y:0 , color:3},
{x: TETRIS_COLS / 2 , y:0 ,
{x: TETRIS_COLS / 2 - 1 , y:1 , color:3},
{x: TETRIS_COLS / 2 , y:1 , color:3}
// 代表可能出现的方块组合 : 田
{x: TETRIS_COLS / 2 , y:0 , color:4},
{x: TETRIS_COLS / 2 , y:1 , color:4},
{x: TETRIS_COLS / 2 , y:2 , color:4},
{x: TETRIS_COLS / 2 , y:3 , color:4}
{x: TETRIS_COLS / 2 - 1 , y:0 , color:5},
{x: TETRIS_COLS / 2 , y:0 ,
{x: TETRIS_COLS / 2 - 1 , y:1 , color:5},
{x: TETRIS_COLS / 2 , y:1 , color:5}
// 代表可能出现的方块组合 : 条
{x: TETRIS_COLS / 2 , y:0 , color:6},
{x: TETRIS_COLS / 2 , y:1 , color:6},
{x: TETRIS_COLS / 2 , y:2 , color:6},
{x: TETRIS_COLS / 2 , y:3 , color:6}
// 定义初始化正在下掉的方块
var initBlock = function()
var rand = Math.floor(Math.random() * blockArr.length);
// 随机生成正在下掉的方块
currentFall = [
{x: blockArr[rand][0].x , y: blockArr[rand][0].y
, color: blockArr[rand][0].color},
{x: blockArr[rand][1].x , y: blockArr[rand][1].y
, color: blockArr[rand][1].color},
{x: blockArr[rand][2].x , y: blockArr[rand][2].y
, color: blockArr[rand][2].color},
{x: blockArr[rand][3].x , y: blockArr[rand][3].y
, color: blockArr[rand][3].color}
//初始化画布
var initilCanvas = function (rows,cols,cellWidth,cellHeight)
tetris_canvas = document.getElementById("myCan");
//设置canvas组件的高度、宽度
tetris_canvas.width = cols*cellW
tetris_canvas.height = rows*cellH
//设置canvas组件的边框
tetris_canvas.style.border = "2px solid black";
// 获取canvas上的绘图API
tetris_ctx = tetris_canvas.getContext('2d');
// 开始创建路径
tetris_ctx.beginPath();
// 绘制横向网络对应的路径
for (var i = 1 ; i & i++)
tetris_ctx.moveTo(0 , i * cellWidth);
tetris_ctx.lineTo(cols * cellWidth , i * cellWidth);
// 绘制竖向网络对应的路径
for (var i = 1 ; i & i++)
tetris_ctx.moveTo(i * cellHeight , 0);
tetris_ctx.lineTo(i * cellHeight , rows * cellHeight);
tetris_ctx.closePath();
// 设置笔触颜色
tetris_ctx.strokeStyle = "#909090";
// 设置线条粗细
tetris_ctx.lineWidth = 0.3;
// 绘制线条
tetris_ctx.stroke();
// 绘制俄罗斯方块的状态
var drawBlock = function()
for (var i = 0; i & TETRIS_ROWS ; i++ )
for (var j = 0; j & TETRIS_COLS ; j++ )
// 有方块的地方绘制颜色
if(tetris_status[i][j] != NO_BLOCK)
// 设置填充颜色
tetris_ctx.fillStyle = colors[tetris_status[i][j]];
// 绘制矩形
tetris_ctx.fillRect(j * CELL_SIZE + 1
, i * CELL_SIZE + 1, CELL_SIZE - 2 , CELL_SIZE - 2);
// 没有方块的地方绘制蓝色
// 设置填充颜色
tetris_ctx.fillStyle = 'white';
// 绘制矩形
tetris_ctx.fillRect(j * CELL_SIZE + 1
, i * CELL_SIZE + 1 , CELL_SIZE - 2 , CELL_SIZE - 2);
// 判断是否有一行已满
var lineFull = function()
// 依次遍历每一行
for (var i = 0; i & TETRIS_ROWS ; i++ )
var flag =
// 遍历当前行的每个单元格
for (var j = 0 ; j & TETRIS_COLS ; j++ )
if(tetris_status[i][j] == NO_BLOCK)
// 如果当前行已全部有方块了
// 将当前积分增加100
curScoreEle.innerHTML = curScore+= 100;
// 记录当前积分
localStorage.setItem("curScore" , curScore);
//根据积分提速,速度可以调整,mySpeed值越小下落越快
if (curScore & 400 && curScore % 500 === 0)
clearInterval(curTimer);
if (mySpeed & 20)
mySpeed = mySpeed - 10
curTimer = setInterval("moveDown();",mySpeed);
// 把当前行的所有方块下移一行。
for (var k = k & 0 ; k--)
for (var l = 0; l & TETRIS_COLS ; l++ )
tetris_status[k][l] =tetris_status[k-1][l];
// 消除方块后,重新绘制一遍方块
drawBlock();
// 控制方块向下掉。
var moveDown = function()
// 定义能否下掉的旗标
var canDown =
// 遍历每个方块,判断是否能向下掉
for (var i = 0 ; i & currentFall. i++)
// 判断是否已经到“最底下”
if(currentFall[i].y &= TETRIS_ROWS - 1)
// 判断下一格是否“有方块”, 如果下一格有方块,不能向下掉
if(tetris_status[currentFall[i].y + 1][currentFall[i].x] != NO_BLOCK)
// 如果能向下“掉”
if(canDown)
// 将下移前的每个方块的背景色涂成蓝色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = 'white';
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2 , CELL_SIZE - 2);
// 遍历每个方块, 控制每个方块的y坐标加1。
// 也就是控制方块都下掉一格
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 将下移后的每个方块的背景色涂成该方块的颜色值
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = colors[cur.color];
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2 , CELL_SIZE - 2);
// 不能向下掉
// 遍历每个方块, 把每个方块的值记录到tetris_status数组中
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 如果有方块已经到最上面了,表明输了
if(cur.y & 2)
// 清空Local Storage中的当前积分值、游戏状态、
localStorage.removeItem("curScore");
localStorage.removeItem("tetris_status");
//暂停音乐
myvideo.pause();
if(confirm("您已丧心病狂了!是否刷新战绩?"))
// 读取Local Storage里的maxScore记录
maxScore = localStorage.getItem("maxScore");
maxScore = maxScore == null ? 0 : maxS
// 如果当前积分大于localStorage中记录的最高积分
if(curScore &= maxScore)
// 记录最高积分
localStorage.setItem("maxScore" , curScore);
// 游戏结束
isPlaying =
// 清除计时器
clearInterval(curTimer);
// 把每个方块当前所在位置赋为当前方块的颜色值
tetris_status[cur.y][cur.x] = cur.
// 判断是否有“可消除”的行
lineFull();
// 使用Local Storage记录俄罗斯方块的游戏状态
localStorage.setItem("tetris_status" , JSON.stringify(tetris_status));
// 开始一组新的方块。
initBlock();
// 定义左移方块的函数
var moveLeft = function()
// 定义能否左移的旗标
var canLeft =
for (var i = 0 ; i & currentFall. i++)
// 如果已经到了最左边,不能左移
if(currentFall[i].x &= 0)
// 或左边的位置已有方块,不能左移
if (tetris_status[currentFall[i].y][currentFall[i].x - 1] != NO_BLOCK)
// 如果能左移
if(canLeft)
// 将左移前的每个方块的背景色涂成白色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = 'white';
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE +1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2, CELL_SIZE - 2);
// 左移所有正在下掉的方块
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 将左移后的每个方块的背景色涂成方块对应的颜色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = colors[cur.color];
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1, CELL_SIZE - 2 , CELL_SIZE - 2);
// 定义右移方块的函数
var moveRight = function()
// 定义能否右移的旗标
var canRight =
for (var i = 0 ; i & currentFall. i++)
// 如果已到了最右边,不能右移
if(currentFall[i].x &= TETRIS_COLS - 1)
canRight =
// 如果右边的位置已有方块,不能右移
if (tetris_status[currentFall[i].y][currentFall[i].x + 1] != NO_BLOCK)
canRight =
// 如果能右移
if(canRight)
// 将右移前的每个方块的背景色涂成白色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = 'white';
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2 , CELL_SIZE - 2);
// 右移所有正在下掉的方块
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 将右移后的每个方块的背景色涂成各方块对应的颜色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = colors[cur.color];
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2, CELL_SIZE -2);
// 定义旋转方块的函数
var rotate = function()
// 定义记录能否旋转的旗标
var canRotate =
for (var i = 0 ; i & currentFall. i++)
var preX = currentFall[i].x;
var preY = currentFall[i].y;
// 始终以第三个方块作为旋转的中心,
// i == 2时,说明是旋转的中心
if(i != 2)
// 计算方块旋转后的x、y坐标
var afterRotateX = currentFall[2].x + preY - currentFall[2].y;
var afterRotateY = currentFall[2].y + currentFall[2].x - preX;
// 如果旋转后所在位置已有方块,表明不能旋转
if(tetris_status[afterRotateY][afterRotateX + 1] != NO_BLOCK)
canRotate =
// 如果旋转后的坐标已经超出了最左边边界
if(afterRotateX & 0 || tetris_status[afterRotateY - 1][afterRotateX] != NO_BLOCK)
moveRight();
afterRotateX = currentFall[2].x + preY - currentFall[2].y;
afterRotateY = currentFall[2].y + currentFall[2].x - preX;
if(afterRotateX & 0 || tetris_status[afterRotateY-1][afterRotateX] != NO_BLOCK)
moveRight();
// 如果旋转后的坐标已经超出了最右边边界
if(afterRotateX &= TETRIS_COLS - 1 ||
tetris_status[afterRotateY][afterRotateX+1] != NO_BLOCK)
moveLeft();
afterRotateX = currentFall[2].x + preY - currentFall[2].y;
afterRotateY = currentFall[2].y + currentFall[2].x - preX;
if(afterRotateX &= TETRIS_COLS - 1 ||
tetris_status[afterRotateY][afterRotateX+1] != NO_BLOCK)
moveLeft();
// 如果能旋转
if(canRotate)
// 将旋转移前的每个方块的背景色涂成白色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = 'white';
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2, CELL_SIZE - 2);
for (var i = 0 ; i & currentFall. i++)
var preX = currentFall[i].x;
var preY = currentFall[i].y;
// 始终以第三个方块作为旋转的中心,
// i == 2时,说明是旋转的中心
if(i != 2)
currentFall[i].x = currentFall[2].x +
preY - currentFall[2].y;
currentFall[i].y = currentFall[2].y +
currentFall[2].x - preX;
// 将旋转后的每个方块的背景色涂成各方块对应的颜色
for (var i = 0 ; i & currentFall. i++)
var cur = currentFall[i];
// 设置填充颜色
tetris_ctx.fillStyle = colors[cur.color];
// 绘制矩形
tetris_ctx.fillRect(cur.x * CELL_SIZE + 1
, cur.y * CELL_SIZE + 1 , CELL_SIZE - 2, CELL_SIZE - 2);
window.focus();
// 为窗口的按键事件绑定事件监听器
window.onkeydown = function(evt)
switch(evt.keyCode)
// 按下了“向下”箭头
if(!isPlaying)
moveDown();
// 按下了“向左”箭头
if(!isPlaying)
moveLeft();
// 按下了“向右”箭头
if(!isPlaying)
moveRight();
// 按下了“向上”箭头
if(!isPlaying)
// 当页面加载完成时,执行该函数里的代码。
window.onload = function()
// 创建canvas组件
initilCanvas(TETRIS_ROWS , TETRIS_COLS , CELL_SIZE , CELL_SIZE);
curScoreEle = document.getElementById("myScore");
maxScoreEle = document.getElementById("maxScore");
// 读取Local Storage里的tetris_status记录
var tmpStatus = localStorage.getItem("tetris_status");
tetris_status = tmpStatus == null ? tetris_status : JSON.parse(tmpStatus);
// 把方块状态绘制出来
drawBlock();
// 读取Local Storage里的curScore记录
curScore = localStorage.getItem("curScore");
curScore = curScore == null ? 0 : parseInt(curScore);
curScoreEle.innerHTML = curS
// 读取Local Storage里的maxScore记录
maxScore = localStorage.getItem("maxScore");
maxScore = maxScore == null ? 0 : parseInt(maxScore);
maxScoreEle.innerHTML = maxS
myvideo = document.getElementById('backmusic');
// 初始化正在下掉的方块
initBlock();
// 控制每隔固定时间执行一次向下”掉“
curTimer = setInterval("moveDown();" ,
开源中国-程序员在线工具:
相关的代码(10)
1回/1331阅
2回/1615阅
1回/2958阅
1回/1465阅
2楼:言会咸 发表于
支持啊,呵呵
3楼:言会咸 发表于
星际争霸的背景音乐
4楼:slyso 发表于
引用来自“chameleon”的评论 哈哈 顶 谢谢,娱乐
5楼:slyso 发表于
引用来自“言会咸”的评论星际争霸的背景音乐谢,带感
6楼:Lucups 发表于
玩了两把,都是0分,我擦
7楼:寻找丢失的糖 发表于
速度感十足
8楼:错II过 发表于
支持一下,前端还是 JS逻辑十足啊
9楼:yoyoso 发表于
好难,搞得这么难有意义吗
10楼:slyso 发表于
引用来自“yoyoso”的评论好难,搞得这么难有意义吗var mySpeed = 100; 注意改JS中的mySpeed这个变量就好了,设置速度这么快,只是为了减少每局的时间...
11楼:slyso 发表于
引用来自“错II过”的评论支持一下,前端还是 JS逻辑十足啊这我就不充大头了,JS代码是在一本代码书的例子基础上改了一点,我当初看了好几遍去理解,觉得人家JS写的确实比较有逻辑,而且俄罗斯方块的实现原理逻辑性也很强。
12楼:slyso 发表于
引用来自“Mousika”的评论玩了两把,都是0分,我擦哥们,是键盘坏了吗...娱乐娱乐
13楼:开源中国无聊周星星 发表于
200分 &- - -! &! &! 1 &! ! ! ! !
14楼:杨胜平 发表于
果然丧心病狂。。。
15楼:ddx27527 发表于
啊 这个我要玩玩看!
16楼:仁清烨媛 发表于
17楼:loyal 发表于
为什么不放到
18楼:slyso 发表于
引用来自“仁清烨媛”的评论js大牛啊书上代码demo改的,要是真是完全自己写的,才算真本事啊
19楼:slyso 发表于
引用来自“loyal”的评论为什么不放到我不是学习前端的,这个就是业余搞的一个,要是以后想学前端了再去runjs学习吧
20楼:ToryChow 发表于
开源从代码分享开始
slyso的其它代码

我要回帖

更多关于 俄罗斯方块旋转 的文章

 

随机推荐