學(xué)習(xí)編程需要帶著目的去學(xué),這樣才會(huì)達(dá)到效率更高的效果,而且才會(huì)有再多成就感。
今天共享以前做的一個(gè)小眾游戲,是當(dāng)時(shí)學(xué)習(xí)tween.js網(wǎng)頁動(dòng)作漫畫插件時(shí)做的,各位
可以點(diǎn)一下 / 進(jìn)行試玩。
這種游戲用到的知識(shí)包括HTML/CSS/JS/JQuery/Ajax, 后臺(tái)使用asp語言,資料庫就用MDB。
這種沙狐球游戲線下中無數(shù)人玩過,不過互聯(lián)網(wǎng)上這種游戲很少見,所以我閑時(shí)做了這種。
既可以單人和計(jì)算機(jī)玩,也完全可以2人對(duì)戰(zhàn),這里簡(jiǎn)單講解一下編編輯思路。
下面是首頁,有開始游戲和游戲規(guī)則講解按鈕,自己互聯(lián)網(wǎng)找的圖片,無所有美工水平,見諒。
游戲首頁
點(diǎn)一下開始游戲也有兩個(gè)選項(xiàng),一個(gè)是2人,一個(gè)是人機(jī)對(duì)戰(zhàn)。
選擇游戲模式
游戲使用了簡(jiǎn)單的綠帽色背景,主要精力花在畫球桌和沙狐球上,當(dāng)然也是互聯(lián)網(wǎng)搜的圖片,包括球桌中心的木紋,四周的深色邊框,以及紅色和藍(lán)色的沙狐球,這效果我已經(jīng)很滿意了,畢竟業(yè)余。
初始設(shè)計(jì)的屏幕(畫布)的尺寸如下,比較符合大眾手機(jī)的屏幕的分辨率門檻:
canvas.width = 720;canvas.height = 950;但事實(shí)沙狐球桌是很長(zhǎng)的,我做的中間臺(tái)面的尺寸就達(dá)到241*2637像素,屏幕上無法展現(xiàn)的地區(qū)就放在屏幕之外,下面是預(yù)加載的任何圖片,也是tween.js所介紹的,通過預(yù)加載能提升反應(yīng)速度。
manifest = [ {src: “start.png”, id: “startPage”}, {src: “sa.png”, id: “txtSahuqiu”}, {src: “startbtn.png”, id: “startBtn”}, {src: “helpbtn.png”, id: “helpBtn”}, {src: “board.png”, id: “board”}, {src: “l(fā)eft.png”, id: “l(fā)eft”}, {src: “right.png”, id: “right”}, {src: “top.png”, id: “top”}, {src: “bottom.png”, id: “bottom”}, {src: “red.png”, id: “red”}, {src: “blue.png”, id: “blue”}, {src: “man1.png”, id: “man”}, {src: “machine1.png”, id: “machine”} ]; ? ?preload = new createjs.LoadQueue(true); preload.on(“complete”, handleComplete); preload.loadManifest(manifest, true, “img/”); }在用戶開始游戲之后,后臺(tái)需要根據(jù)用戶的游戲類別進(jìn)行處理,如果是2人游戲,需要判斷是否有很多人也在申請(qǐng)游戲,有則兩人對(duì)戰(zhàn),建立游戲ID,如果是人機(jī)對(duì)戰(zhàn),則直接建立游戲ID,開始游戲。
游戲設(shè)計(jì)每方4個(gè)沙狐球,輪流發(fā)球,末尾誰的球最靠前則分?jǐn)?shù)最高,贏得比賽。
為方便用戶開球,需要畫一個(gè)輔助箭頭指示健身方向,同一時(shí)間拉動(dòng)鼠標(biāo)時(shí)變化箭頭長(zhǎng)度,表示力度的大小。
開球界面
因?yàn)殚_球時(shí)球在屏幕下部,開球后球會(huì)玩上健身,健身到上部時(shí)球不可以繼續(xù)前進(jìn),不然就超出屏幕就這樣看不到了。此時(shí)此刻改成球桌做相對(duì)健身,往下走,就這樣看起來貌似球在往上動(dòng)一樣。
這里我給機(jī)器用戶一個(gè)大致的方向和大致的力度,模擬機(jī)器發(fā)球,水平和給的資料有蠻大的關(guān)系,當(dāng)然更AI智能的話可以再模擬有的發(fā)球技術(shù)等,這里沒作再多的嘗試了。
等任何球用完之后,游戲結(jié)束,根據(jù)球的地點(diǎn)判斷哪方分?jǐn)?shù)更高,展現(xiàn)比賽結(jié)果。
結(jié)束界面
末尾發(fā)表資料庫,只有user和game兩個(gè)資料表,之中user保存游戲用戶的資料,包括玩家名,游戲情況,游戲ID,贏球次數(shù)等消息。
User資料表
game資料表主要保存游戲資料,包括游戲的雙方用戶名稱,哪方開球,第幾回合,球的情況,以及每回合的資料等。
game資料表
你認(rèn)為這種游戲怎么樣?或者你想做其他游戲嗎?歡迎探討,謝謝接受。
有需要完全代碼的請(qǐng)回復(fù),渴望各位能齊心全力提升編程水平。