㈠ 如何能提高俄羅斯方塊的速度和技術謝謝了,大神幫忙啊
先把你的鍵盤武裝下.只有把鍵盤速度快,聯系後速度才能提上來.鍵盤反應慢你反應快鍵盤跟不上你的速度. 一.去買個好點延時短的鍵盤. 二.用加速提高軟鍵盤速度.
㈡ 俄羅斯方塊,怎樣才能讓速度更快
提高手速度和眼速度
㈢ 俄羅斯方塊下降的速度是通過什麼技術實現的
俄羅斯方塊實現下降速度使用編程技術: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