本文目錄一覽:
請問俄羅斯方塊的七種方塊進行旋轉的java代碼怎麼打?
這個問題我也遇到過。 我曾經寫過一個俄羅斯方塊程序。 也是去找中心點。然後旋轉的方式去實現。 現在想想這種思路不好。 應該是用矩陣變換的思路。 1 1 0 1 0 1 順時針應該變成 0 0 1 1 1 1
JAVA中如何讓方塊實現運動?
設計界面。設想中的界面應該分為左邊的遊戲區與右邊的控制區。控制區有“開始”“暫停”“停止”按鈕,遊戲得分信息;遊戲區則劃分20*10個格子,每個方塊就是由不同的格子組合而成。
我們需要定義布局,組件,初始化等操作。設置左右兩邊的控制區組件大小,定位來實現絕對定位。
主要的功能都在遊戲區組件中實現。控制區三個按鈕“開始”,“暫停”,“停止”只是調用遊戲組件函數。
在遊戲區,定義20*10個格子。通過標記不同格子的背景顏色,組成不同的方塊。方塊移動時候,也是變換組成格子的背景顏色。
然後定義遊戲中出現的方塊以及它的變幻方塊。我們預計定義9中方塊,每種方塊最多只能變幻為另外一種方塊。然後每次我們都是隨機獲取9中方塊中的一種,獲取的方塊出現在頂部中間,所以獲取了方塊我們就可以初始化它的定位。
開始遊戲後獲取第一個方塊並開啟一個定時器,定時器中每隔一段時間將方塊下移一個位置。如果方塊下移到最後或者下移到已有方塊之上再不能下移了,這時候再判斷是否有某一行連成一排的。如果連成一排,累加遊戲得分,同時需要消除該行,將上面的方塊都挪到下面來。再獲取下一個方塊,並判斷該方塊能否安放,如果不能安放,那麼遊戲就結束。
這是遊戲的控制邏輯。
定義遊戲得分,遊戲結束的判斷邏輯。
還有一個主要的控制就是方塊的左右移動,變形。左右變化控制方塊的位置就行。變形則根據不同的方塊可變形狀變化,其實也是改變方塊的位置就行了。
尤其要注意的是,鍵盤事件和時間事件中都會操作當前方塊。鍵盤事件中改變方塊的形狀,向左或右移動。時間事件中方塊要不停的下移。所以,在兩個事件中都需要請求鎖、釋放鎖,以此做到數據同步。
在這段java代碼–俄羅斯方塊,方塊是怎麼旋轉的?
貼出來的代碼還不夠,不過已經基本能回答你的問題了
我的推理過程:從(turnstate+1)%4可以看出,turnstate是一個數字,取值只有0123,因此它僅僅是一個標識符,0123四種取值分別標記着這個方塊處於原狀,旋轉90度,180度或者270度。然後blow函數應該是一個判斷旋轉之後會不會出現和已有方塊重疊的函數。
因此,這個turn函數的功能是:把標識符變成下一個狀態,然後判斷如果旋轉,會不會和已有的方塊重疊,如果重疊,就取消這個旋轉標記的改變。
因此,答案就很明顯了:真正實現旋轉方塊的操作並不在這裡,或者說,你再仔細研究一下這個程序的代碼,它可能實際上根本沒有旋轉過那個方塊,只是用turnstate這個數字標記方塊旋轉了多少度,判斷重疊以及繪製的時候才真正計算或者從表裡直接讀取旋轉後狀態而已。
java俄羅斯方塊旋轉算法,求解
你的思路不太好,方塊應該採用4*4矩陣,用0、1表示有沒有被填充,然後根據0、1畫出各種方塊的圖形,這樣的話,方塊的旋轉其實就是矩陣的旋轉了,是有特定算法的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293660.html