打字機遊戲 之手速pk

2021-07-30 05:36:03 字數 1656 閱讀 2849

demo預覽->typewriter gameⅱ (chrome only 沒做相容

別看一開始時速度不快,會線性增長的哦,反正樓主的score還沒達到過40...

為什麼叫ⅱ呢?之前寫了個打字機遊戲(試玩猛戳這裡),資料上只是簡單的手寫了50個單詞,全部輸入正確即可過關,本來想改一下做成競技類的(有分數的),但是一樣的小遊戲寫倆沒啥意思,正好最近看了下css3,突然有了某種靈感,於是typewriter gameⅱ粗線了。

之前的打字機遊戲是基於canvas和粒子系統的,這次是基於dom和css3的,不過思路都是一樣的。

在看下文之前,可以先回顧下《canvas之打字機遊戲》和《css3實踐之摩天輪式輪播+3d正方體+3d標籤雲(perspective、transform-style、perspective-origin)》,相同的內容就不多說了。

html檔案主要就是dom的一些css,核心檔案主要就是兩個js檔案。

初始化檔案,主要構造單詞陣列以及整個遊戲介面。

單詞直接從網上拉了個txt檔案(看檔案戳這裡),然後用ajax和正則將裡面的單詞提取放在array陣列中。

1

2

3

4

5

6

7

8

9

$.ajax (

});

不得不說正規表示式實在是太屌,有時間一定要好好看看。

接著構造了遊戲的主要介面,9個正方體圍成的乙個圈,構造方法和前文說的摩天輪式輪播類似,可以參考前文。

遊戲的核心檔案,控制整個小遊戲的邏輯。

簡單說說整個邏輯。監聽鍵盤,當正確打字時,字的顏色發生變化,不斷旋轉,不斷出現新的單詞,旋轉速度也不斷變快,直到遊戲結束。

這之中最糾結的是寫createword方法。因為得找乙個時機創造新的單詞替換舊單詞,最終我選擇當旋轉位置如下時呼叫方法:

剛好這一位置該div即將處在盲區,經過實踐發現旋轉角度滿足28+40*n 時呼叫方法即可,雜湊角度去重。

還有乙個問題,因為創造新的單詞前,先要去掉舊的單詞,jquery可以用empty方法,如果用原生的js將dom乙個乙個remove,要倒序寫:

1

2

3

4

5

varc = d[i].getelementsbyclassname('cell');

// 必須倒著來 notice

for(varj = c.length - 1; j >= 0; j--)

其他的話,主要是對旋轉速度的控制,以及遊戲過程中的各種index的控制,只要邏輯正確,隨便怎麼寫都行。

有興趣看完整的**可以猛戳:打字機遊戲ⅱ原始碼

css3很強大,正規表示式很強大,感概ing...

高階打字機

早苗入手了最新的高階打字機。最 自然有著與以往不同的功能,那就是它具備撤銷功能,厲害吧。請為這種高階打字機設計乙個程式,支援如下3種操作 t x 在文章末尾打下乙個小寫字母x。type操作 u x 撤銷最後的x次修改操作。undo操作 注意query操作並不算修改操作 q x 詢問當前文章中第x個字...

高階打字機

題目描述 請為一種高階打字機設計乙個程式,支援如下3種操作 2.u x 撤銷最後的x次修改操作。undo操作 注意query操作並不算修改操作 文章一開始可以視為空串。輸入描述 第1行 乙個整數n,表示運算元量。以下n行,每行乙個命令。保證輸入的命令合法。輸出描述 每行輸出乙個字母,表示query操...

高階打字機

題目描述 早苗入手了最新的高階打字機。最 自然有著與以往不同的功能,那就是它具備撤銷功能,厲害吧。請為這種高階打字機設計乙個程式,支援如下3種操作 1.t x 在文章末尾打下乙個小寫字母x。type操作 2.u x 撤銷最後的x次修改操作。undo操作 注意query操作並不算修改操作 3.q x ...