导航:首页 > 观俄罗斯 > 俄罗斯方块如何锁定速度

俄罗斯方块如何锁定速度

发布时间:2022-02-22 01:15:21

㈠ 如何能提高俄罗斯方块的速度和技术谢谢了,大神帮忙啊

先把你的键盘武装下.只有把键盘速度快,联系后速度才能提上来.键盘反应慢你反应快键盘跟不上你的速度. 一.去买个好点延时短的键盘. 二.用加速提高软键盘速度.

㈡ 俄罗斯方块,怎样才能让速度更快

提高手速度和眼速度

㈢ 俄罗斯方块下降的速度是通过什么技术实现的

俄罗斯方块实现下降速度使用编程技术:JAVA,C语言,C#。
俄罗斯方块
俄罗斯方块是款非常流行的小游戏,通过七个方块的旋转和位移,构成各种变幻莫测的图案。而游戏者也在不断的叠加和消除中找到乐趣。
从编程的角度来说,这个游戏混合了键盘事件,定时器,随机数,鼠标事件(如果没有菜单,这个也不是必需的),数据结构比较清晰,算法比较灵活,图形是比较简单的矩形,所以很适合刚学习完某种语言的语法又想做点什么的初学者。
本文使用的语言包括:c(Turboc2.0,VC6.0),JAVA(Applet),c#(.NET2003)

编写这个游戏的基本过程是:
首先,把这七个方块用一种数据结构存储起来
其次,在游戏中将这七个方块随机挑选出来并显示在屏幕上,根据键盘事件进行旋转
最后,判断到达底部的方块是简单叠加还是引发消除事件
另外,对这个游戏来说,还有一些记分和过关加速的规则,这些会穿插在上面的内容中讲述。
1存储和旋转七个方块
对于OOP语言(JAVA,C#)来讲,可以写一个数据结构类,处理本游戏中的全部数据。在界面中调用这个类,以实现界面操作与数据结构分离。在后面展示这两个数据结构类的时候,会发现除了语法外,这两个类是基本相同的(把C#的类改了改,再加上键盘操作就成Applet了)。
对于过程化语言(c)来说,界面显示函数与数据结构函数地位相当,所以在形式上稍微分分就行了。
1.1存储七个方块
普通俄罗斯方块游戏中,只有七个基本方块:|,Z,N,L,7,|-,O,如果加上旋转,一共是19种方块(要注意哦,最后一个正方形的方块不能旋转)。这19种方块都可以画在一个4*4的方格中。
于是就有两个方法:一个是只存储七个方块,在游戏运行的时候计算旋转后的方块形状;另一个是将19种方块全部存储起来,在游戏运行的时候计算取其中的哪个方块。
另外,考虑到4*4是16,而一个int正好是16位(TC2是16位,其他的是32位),所以可以把一个方块存储在一个int数据中,取出的时候,判断它的每个bit位,为1处有小方块,为0处是空白。
分别用二维数组和bit的方法来表示这19个方块:
int blocks_shape[19][16]={
0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,/*11*/
0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,/*12*/
0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,/*21*/
0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,/*22*/
0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,/*31*/
0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,/*32*/
0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,/*33*/
0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,/*34*/
0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,/*41*/
0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,/*42*/
0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,/*43*/
0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,/*44*/
0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,/*51*/
0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,/*52*/
0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,/*53*/
0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,/*54*/
0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,/*61*/
0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,/*62*/
0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,/*71*/
};
注释里第一个数字表示方块编号,第二个数字表示该方块的第几个变形。
private int[] blocks_shape = {3168,1224,1728,2244,3712,2188,736,3140,2272,1100,3616,3208,1248,1220,228,2248,3840,17476,3264};
显然,第二种方法节约了一些内存。
1.2旋转七个方块
在游戏中计算旋转后的方块形状:
这个其实就是考考二维坐标知识。还是不贴图。先在脑袋里想象一个4*4的方格,上面有个|-。|占三个方格的长度,-占一个。以左下角为原点,从左向右画x轴;从下向上画y轴。如果在游戏中想逆时针旋转方块,就把这个坐标轴顺时针旋转一次。多想几遍得到结论:原来的x坐标与新的y坐标相同,原来的y坐标与新的x坐标方向正好相反。这里的“相反”意思是,原来是4,现在是1,原来是2,现在是3。语言不好表达啦,不过想通的话就很容易理解。
在游戏中计算调用19个方块中的哪个方块:
将19个方块存入数组后,再设一数组告诉程序哪七个下标是七个基本方块。比如:private int[] start_bricks = {0,2,4,8,12,16,18};每次随机产生的方块下标都为start_bricks里的元素。当游戏者旋转方块时,将当前方块下标加1,再判断加1后的下标是否在start_bricks里。如果在的话,说明已经是另一个形状了,舍掉,使用start_bricks里原来的下标。最后根据此下标在blocks_shape数组中取出形状,显示在屏幕上。
看看代码。
private int[] bricks = {3168,1224,1728,2244,3712,2188,736,3140,2272,1100,3616,3208,1248,1220,228,2248,3840,17476,3264};
private int[] start_bricks = {0,2,4,8,12,16,18};
/*mid是当前方块在bricks中的下标*/
for(i=0;i<7;i++)
{
if(mid+1==start_bricks[i])
/*如果mid加1后是start_bricks中的元素*/
/*则还是取start_bricks中原来的元素,即七个基本方块之一,不让它变形*/
mid=start_bricks[i-1];
}
2方块落下的处理
2.1判断方块已经到达底部或是否碰到墙壁
不论是用二维数组还是用bit的方法存储的方块,最终都需要遍历方块的16个小方块中为1的地方是否将会碰到障碍物。“将会”指的是方块如果向左,向右,向下移动后就会碰到障碍物;“障碍物”指的是左右下墙壁和底部已经落下未被消除的小方块。
比较困难的地方,就是把为1的地方转换为相应的坐标,用此坐标判断是否碰到了障碍物。用旋转的办法比较简单,根据旋转的方向转换一下坐标就可以了。如果采用存储19个方块的方法的话,直接看下程序:

用二维数组:
/*遍历16个小方块*/
for(j=0;j<16;j++)
{
/*此处有小方块,判断它是否碰到障碍物*/
if(blocks_shape[i][j]==1)
{
/*a,b是方块左上角坐标,aaa,bbb是新得到的小方块的坐标*/
aaa=a-1+j/4;
bbb=b+j%4;
if( ( aaa==h )||( aa[aaa][bbb]>0 )||( bbb<0 )||( bbb>9 ) )
/*aaa==h表示该小块已经到达底部;aa[aaa][bbb]>0表示底部该位置已经有了小方块*/
{
/*返回false,表示会碰到障碍物*/
return false;
}
}
}
用bit与此类似,只是多了一个移位处理:
for(int i=0;i<16;i++)
{
/*num是当前方块的int值,a,b是当前方块的左上角坐标*/
if( (num>>(15-i)&1)!=0 )/*此位为1*/
{
if( (a+i/4>22)||(b+i%4<0)||(b+i%4>11) )/*取得新坐标并加以判断*/
{
flag=false;
break;
}
if( (arr[a+i/4][b+i%4]>0) )/*底部该位置是否有已经落下的小方块*/
{
flag=false;
break;
}
}
}
2.2消除一行
判断到方块落下后,就开始检查是否有满足消除条件的行了。
规则很简单:只要某行被小方块全部填充,该行就被消除,上面的小方块全部下移一行。所以,只要把原来的小方块全部擦去,计算完新方块位置后,再全部画出就可以了,计算的时候,可以遍历整个游戏区域,看有没有可以消除的行。但是在实际编程中就会发现,这样的设计虽然简单,但是计算量大,而且会引起闪烁(因为是整个擦除和重画),效果不是很好。仔细观察这个游戏,就会发现,其实每次消除的时候,只要判断当前方块所在的四行就足够了。在编程的时候,还可以为方块设一个最高高度h,每次刷新的时候,只刷新从h到当前方块底部的行。虽然这样有点烦琐,但是节约了计算时间,减少了重绘面积,效果还是挺明显的。
另外,一些关于这个游戏算法的介绍,有人建议把随机产生下一个方块的计算放在当前方块正在下落的时候,因为那时比较空闲。总之,只要用心去想,一定会写出代码紧凑,资源利用合理,界面舒适的游戏。

㈣ 火拼俄罗斯怎么让方块移动的快点如何设置

《E块冒险》中提供了非常灵活的键位修改功能,在“游戏设置”的“游戏操作”下“键盘设置”中修改,足足有15项之多,想怎么改就怎么改。

科学的操作方法是每只手控制两个键,一只手负责直接落底和旋转,另一只手负责左右移动。游戏中还可以使用道具和对指定座位号的对手攻击,所以键位尽量设置在中间的字母键上比较方便。

设置方法可根据习惯因人而异,这里给出一种常见的键位设置供参考:右手J键左移,L键右移,K键加速下落;左手键D旋转,F键群发道具,空格键落底。还有稍微复杂些带指定座位使用道具的设置,需要经过一番练习才能熟练掌握:右手J键左移,L键右移,K键快速下落,U键攻5号,I 键攻6号,O键攻7号,P键攻8号;左手D键顺时针旋转,F键逆时针旋转,S键群发道具,空格键直接落底,Q键给自己加血、W键攻2号、E键攻3号、G键攻4号。注意使用道具时键位对应座位号的选手随你的位置有所不同,例如你是1~4号位,那么1~4号其他位置上就是你的同伴,5~8号定义的键位是要攻击对手,反之亦然。

这样设置左、右手分工在团队战或混战中操作就会更加灵活从容,也不容易累,更中重要的是熟练以后速度能提升不少。开始的时候有些不习惯,一般坚持3天就能恢复以前的水平,后面就会明显感觉提高了一个档次。
巧用“超级键盘” 速度再加倍

当适应新设置练习了一段时间后,会不会感觉速度提高很多呢?不过,你可能又要觉得键盘跟不上思维了。恭喜恭喜,你的方块水平又上了个新台阶。当通过大量的练习水平达到一定程度后,各种方块摆法会形成一种无意识的条件反射,用高手们的话说“不知道为什么这么摆,完全凭感觉”。这时键盘速度就成了新的“拦路虎”,限制了水平发挥,现在可以考虑换个速度快的键盘了。

手指按下键帽后会有一个响应和延迟时间,如果缩短键盘的响应间隔时间,也就是加快反应速度,是不是操作起来更灵敏,更快速呢?现在俄罗斯方块爱好者中流行一种修改键盘电阻的阻值使键盘加速的方法。不过这种修改需要具备一定的电子知识,选择键盘也有学问,而且硬件修改后键盘速度过快,没有较长的适应过程根本控制不了,平时打字都很困难,游戏中也经常出现按一下落好几块的情况。所以,这种高速键盘适合水平已经很高的时候选用。

对于普通玩家而言,加速键盘需要一步步的适应。《E块冒险》提供了“超级键盘”的功能,可以使键盘速度随着水平提高逐步调整到所需的速率,省去硬件修改键盘的麻烦。

建议新手使用“超级键盘”时,最开始用2200档,然后再2800、3500、4000……5400逐步提高。适应键盘不要操之过急,最好每次感觉键盘慢了再提高一档。

相信通过以上的修改和一段时间的练习,研究速度和摆法的配合,你的骄傲感会重新找回。在E块的世界里体验极速快感,尽情摇滚你的手指吧!

㈤ 怎么让俄罗斯方块的速度与难度同步

游戏开始前,在选项里,把难度和速度都调成0

阅读全文

与俄罗斯方块如何锁定速度相关的资料

热点内容
金华义乌国际商贸城雨伞在哪个区 浏览:733
俄罗斯如何打通飞地立陶宛 浏览:1110
韩国如何应对流感 浏览:894
在德国爱他美白金版卖多少钱 浏览:934
澳大利亚养羊业为什么发达 浏览:1359
如何进入法国高等学府 浏览:1448
巴西龟喂火腿吃什么 浏览:1375
巴西土地面积多少万平方千米 浏览:1235
巴西龟中耳炎初期要用什么药 浏览:1204
国际为什么锌片如此短缺 浏览:1605
巴西是用什么规格的电源 浏览:1427
在中国卖的法国名牌有什么 浏览:1334
在菲律宾投资可用什么样的居留条件 浏览:1237
德国被分裂为哪些国家 浏览:851
澳大利亚跟团签证要什么材料 浏览:1178
德国大鹅节多少钱 浏览:848
去菲律宾过关时会盘问什么 浏览:1172
澳大利亚女王为什么是元首 浏览:998
有什么免费的韩国小说软件 浏览:733
申请德国学校如何找中介 浏览:637