JavaScript游戲之是男人就下100層代碼打包
這次的游戲的編寫難度比之前的都高很多。本次鄙人用了js的繼承以及設(shè)計(jì)模式的工廠模式,也算是一個(gè)突破。。。
游戲的大致設(shè)計(jì)思路:
1,玩家類Player:一個(gè)人能左右移動(dòng),以及上下移動(dòng)的小人。
擁有的基本方法:{
左右移動(dòng) : 單純的鍵盤左右移動(dòng),
向下移動(dòng) : 屬于向下加速度移動(dòng),每次移動(dòng)都會(huì)加一個(gè)重力加速度的值,
向上移動(dòng) : 其實(shí)是跟著方塊一起向上移動(dòng), 勻速向上運(yùn)動(dòng),
彈跳 : 就是玩家先向上一個(gè)減速度運(yùn)動(dòng),然后,當(dāng)速度小于1時(shí),像下加速度運(yùn)動(dòng)
}
2,方塊基類BlockBase:所有方塊的基類,擁有公共的方法以及接口。
擁有的基本方法:{
移動(dòng) : 方塊的向上勻速移動(dòng),
檢測(cè)玩家是否在方塊上 : 判斷玩家是否停留在方塊上
}
以及一些抽象的接口函數(shù),只有名字,需要在子類中實(shí)現(xiàn),具體看源碼。
3,各種子類,如 普通方塊類NormalBlcok、彈跳方塊類FlipBlock等
繼承的實(shí)現(xiàn)方式如下:
在構(gòu)造函數(shù)中:BlockBase.call(this);繼承非prototype的屬性與方法
在函數(shù)外部:子類方塊.prototype = new BlockBase(); 繼承基類的prototype的屬性與方法
4, 工廠類BlockFactory:負(fù)責(zé)生產(chǎn)方塊,以及擊中處理方塊
擁有的基本方法:{
生成方塊 : 重點(diǎn)的方法,就是隨機(jī)生成一塊方塊
}
其實(shí)我也不知道怎么說,還是看源碼吧。里面我注釋得很具體了。
還有,bug肯定是會(huì)有的,希望大家諒解。。。
最后獻(xiàn)上預(yù)覽吧。希望大家多多拍磚,能讓我多些提高。最好在代碼的編寫上。
方向左右控制移動(dòng),界面是做得比較丑。。。大家見諒。
演示代碼:http://demo.jb51.net/js/DownFloor/index.html
完整源碼打包>> /201011/yuanma/DownFloor.rar
相關(guān)文章
JS獲取屏幕,瀏覽器窗口大小,網(wǎng)頁(yè)高度寬度(實(shí)現(xiàn)代碼)
本篇文章主要介紹了JS獲取屏幕,瀏覽器窗口大小,網(wǎng)頁(yè)高度寬度的實(shí)現(xiàn)代碼。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12js實(shí)現(xiàn)把圖片的絕對(duì)路徑轉(zhuǎn)為base64字符串、blob對(duì)象再上傳
本文主要介紹了JavaScript把項(xiàng)目本地的圖片或者圖片的絕對(duì)路徑轉(zhuǎn)為base64字符串、blob對(duì)象再上傳的方法,具有一定的參考價(jià)值,需要的朋友一起來看下吧2016-12-12JavaScript將數(shù)字轉(zhuǎn)換成大寫中文的方法
這篇文章主要介紹了JavaScript將數(shù)字轉(zhuǎn)換成大寫中文的方法,涉及javascript字符串及匹配的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03JS實(shí)現(xiàn)懸浮移動(dòng)窗口(懸浮廣告)的特效
頁(yè)面加載完成之后向頁(yè)面插入窗口,之后向窗口插入關(guān)閉按鈕,使用setInterval()函數(shù)觸發(fā)moves()函數(shù)開始動(dòng)畫2013-03-03Bootstrap每天必學(xué)之工具提示(Tooltip)插件
Bootstrap每天必學(xué)之工具提示(Tooltip)插件,工具提示就是通過鼠標(biāo)移動(dòng)選定在特定的元素上時(shí),顯示相關(guān)的提示語(yǔ),感興趣的小伙伴們可以參考一下2016-04-04Js模塊打包exports require import的用法和區(qū)別
這篇文章主要介紹了Js模塊打包exports require import的用法和區(qū)別,對(duì)模塊打包感興趣的同學(xué),可以參考下2021-05-05