最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用js做一個小游戲平臺 (一)

 更新時間:2009年12月29日 00:03:57   作者:  
大體的意思就是想寫一些js,使得網頁上能玩多個游戲。譬如:貪吃蛇、俄羅斯方塊、推箱子、坦克等等。
記得上班寫代碼時,我們技術總監(jiān)總說是要先“設計”,那就先“設計”吧。
ps:我是新手大家多多見諒。

.網頁游戲區(qū)域。就是說需要知道游戲在網頁上的區(qū)域,如下:
在網頁中插入一個div,設定寬高和id,
<div id="GameFrame" style="width:400;height:400"></div>
然后再js中得到該對象,
var _GameFrame = document.getElementById("GameFrame");


.鍵盤參數(shù)對象:在游戲中會經常獲取鍵盤的值,設定一個鍵值對應的對象:
var _KeyParameters = { KeyEnter: 13, KeySpace: 32, KeyLeft: 37, KeyUp: 38, KeyRight: 39, KeyDown: 40, KeyESC: 27 };


.標簽控制對象:用于控制、產生html標簽,輔助生成對應樣式的"控件":
復制代碼 代碼如下:

var _HtmlControl =
{
//清空網頁游戲區(qū)域
_ClearArea: function() {
},
//創(chuàng)建一個div
newDiv: function() {
var div = document.createElement("div");
return div;
},
//創(chuàng)建一個指定寬高的按鈕樣式標簽
newButton: function(w, h) {
var div = this.newDiv();
div.style.width = w + "px";
div.style.height = h + "px";
div.select = function() {
//被選中時的變化
};
div.unselect = function() {
//沒選中時的樣子
};
return div;
}
//繼續(xù)...
};


.動畫類:用于播放一些游戲跳轉動畫:
復制代碼 代碼如下:

var Animation = function(endFn) {
//播放動畫
this._play = function() {
    //具體怎么放沒有想好。
};
//播放結束事件
this._palyEnd = endFn || function() {
alert("動畫播放結束");
};
};

.游戲類:要有一個游戲名,
a.控制:1.邏輯控制、2.鍵盤控制
b.主界面:1.標題、2.游戲區(qū)域、3.狀態(tài)顯示區(qū)、4.控制區(qū)
c.動畫:1.開場動畫、2.過關動畫、3.通關動畫
d:事件:1.開始、2.結束。
    代碼大致如下:
代碼
復制代碼 代碼如下:

var Game = function(name, logicalFn, keyFn) {
//游戲名
this._name = name || "未命名";
this._LControl = logicalFn || function() {
//簡單游戲邏輯控制
};
this._KControl = keyFn || function(event) {
//簡單鍵盤邏輯
};
//開場動畫
this._AnmLoad = new Animation(null);
//過關動畫
this._AnmNext = new Animation(null);
//通關動畫
this._AnmEnd = new Animation(null);
};


.游戲列表:就是游戲類的對象列表。

.游戲選擇器:可以是一個游戲類對象。
var _GameChoose = new Game("選擇器", null, null);
.頁面控制:用于注冊頁面事件,接受用戶響應,并傳遞給游戲選擇器;
代碼
復制代碼 代碼如下:

var _PageControl = {
//8.a:線程控制
_ThreadControl: function() {
_GameChoose._LControl();
},
//8.b:鍵盤控制
_KeyControl: function(event) {
_GameChoose._KControl(event);
},
//8.cc.事件注冊
_StartRegedit: function() {
//把this._ThreadControl添加到循環(huán)線程
//把this._KeyControl注冊到document的鍵盤單擊
}
}


最后,到了這一步,貌似就“設計”完了?暫且不管這是不是設計,姑且說是一種邊敲代碼邊設計的設計吧。不過貌似真的就可行了。當然它現(xiàn)在是不能運行的。我們先把總體代碼貼出來看一下:
整體代碼
復制代碼 代碼如下:

<script type="text/javascript"language="javascript">
/***
* 1.網頁游戲區(qū)域:
* 2.鍵盤參數(shù)類
* 3.標簽類:用于控制、產生html標簽
* 4.動畫類:播放動畫,播放結束事件
* 5.游戲類:游戲名
* a.控制:1.邏輯控制、2.鍵盤控制
* b.主界面:1.標題、2.游戲區(qū)域、3.狀態(tài)顯示區(qū)、4.控制區(qū)
* c.動畫:1.開場動畫、2.過關動畫、3.通關動畫
* d:事件:1.開始、2.結束
* 6.游戲列表
* 7.游戲選擇器
* 8.頁面控制:a.線程控制、b.鍵盤控制、c.事件注冊
***/

window.onload = function() {
//----------------------------------------------------
//1.網頁游戲區(qū)域:
var _GameFrame = document.getElementById("GameFrame");
//----------------------------------------------------
//2.鍵盤參數(shù)類:可以根據(jù)需要把鍵值添加進來
var _KeyParameters = { KeyEnter: 13, KeySpace: 32, KeyLeft: 37, KeyUp: 38, KeyRight: 39, KeyDown: 40, KeyESC: 27 };
//----------------------------------------------------
//3.標簽類:用于控制、產生html標簽
var _HtmlControl =
{
//清空網頁游戲區(qū)域
_ClearArea: function() {
},
//創(chuàng)建一個div
newDiv: function() {
var div = document.createElement("div");
return div;
},
//創(chuàng)建一個指定寬高的按鈕樣式標簽
newButton: function(w, h) {
var div = this.newDiv();
div.style.width = w + "px";
div.style.height = h + "px";
div.select = function() {
//被選中時的變化
};
div.unselect = function() {
//沒選中時的樣子
};
return div;
}
//繼續(xù)...
};
//----------------------------------------------------
//4.動畫類:播放動畫,播放結束事件
var Animation = function(endFn) {
//播放動畫
this._play = function() {
};
//播放結束事件
this._palyEnd = endFn || function() {
alert("動畫播放結束");
};
};
//----------------------------------------------------
//5.游戲類:
var Game = function(name, logicalFn, keyFn, startFn, endFn) {
//游戲名
this._name = name || "未命名";
//5.a.1:邏輯控制
this._LControl = logicalFn || function() {
//簡單游戲邏輯控制
};
//5.a.2:鍵盤控制
this._KControl = keyFn || function(event) {
//簡單鍵盤邏輯
};
//5.b.1:標題區(qū)域
this._FrameTitle;
//5.b.2:游戲區(qū)域
this._FrameMain;
//5.b.3:狀態(tài)顯示區(qū)
this._FrameState;
//5.b.4:控制區(qū)
this._FrameControl;
//5.c.1:開場動畫
this._AnmLoad = new Animation(null);
//5.c.2:過關動畫
this._AnmNext = new Animation(null);
//5.c.3:通關動畫
this._AnmEnd = new Animation(null);
//5.d.1:開始
this._Start = startFn || function() {
alert("游戲開始");
};
//5.d.2:結束
this._End = endFn || function() {
alert("游戲結束");
};
};
//----------------------------------------------------
//創(chuàng)建游戲
var game1 = new Game("貪吃蛇", null, null);
var game2 = new Game("俄羅斯方塊", null, null);
var game3 = new Game("推箱子", null, null);
var game4 = new Game("賽車", null, null);
var game5 = new Game("坦克大戰(zhàn)", null, null);
//----------------------------------------------------
//6.游戲列表
var _GameList = [game1, game2, game3, game4, game5];
//----------------------------------------------------
//7.游戲選擇器
var _GameChoose = new Game("選擇器", null, null);
//----------------------------------------------------
//8.頁面控制:
var _PageControl = {
//8.a:線程控制
_ThreadControl: function() {
_GameChoose._LControl();
},
//8.b:鍵盤控制
_KeyControl: function(event) {
_GameChoose._KControl(event);
},
//8.cc.事件注冊
_StartRegedit: function() {
//把this._ThreadControl添加到循環(huán)線程
//把this._KeyControl注冊到document的鍵盤單擊
}
}
//----------------------------------------------------
}
</script>
<div id="GameFrame" style="width:400;height:400">
</div>

就先這樣吧,明天再讓它運行一下,順便設計一下第一個游戲:貪吃蛇。
用同事的一句話喊一下口號:不做權限設計,做全國最好的貪吃蛇,汗一個...

相關文章

  • js鼠標點擊圖片實現(xiàn)隨機變換圖片的方法

    js鼠標點擊圖片實現(xiàn)隨機變換圖片的方法

    這篇文章主要介紹了js鼠標點擊圖片實現(xiàn)隨機變換圖片的方法,涉及鼠標事件與隨機函數(shù)的使用技巧,需要的朋友可以參考下
    2015-02-02
  • Javascript 瀏覽器事件小結

    Javascript 瀏覽器事件小結

    Javascript中的事件都是與對象相關聯(lián)的,而不是語言本身所有,當Javascript在瀏覽器中運行的時候,事件與每個瀏覽器實現(xiàn)的DOM模型有關。
    2010-02-02
  • 發(fā)表文章時自動保存到剪貼板

    發(fā)表文章時自動保存到剪貼板

    發(fā)表文章時自動保存到剪貼板...
    2006-10-10
  • js實現(xiàn)密碼強度檢驗

    js實現(xiàn)密碼強度檢驗

    這篇文章主要為大家詳細介紹了js密碼強度檢驗的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 小程序實現(xiàn)列表展開收起效果

    小程序實現(xiàn)列表展開收起效果

    這篇文章主要為大家詳細介紹了小程序實現(xiàn)列表展開收起效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 使用JavaScript遍歷輸出頁面中的所有元素的方法詳解

    使用JavaScript遍歷輸出頁面中的所有元素的方法詳解

    在前端開發(fā)中,遍歷頁面中的所有元素是一個常見需求,無論是調試、頁面分析,還是獲取元素信息,都會用到遍歷 DOM 樹的操作,本文將介紹如何通過 JavaScript 編寫一個方法,遍歷并輸出頁面中的所有元素,需要的朋友可以參考下
    2024-12-12
  • 微信小程序實現(xiàn)錄音播放錄音功能

    微信小程序實現(xiàn)錄音播放錄音功能

    在微信小程序中,實現(xiàn)錄音及播放功能需用到錄音管理器wx.getRecorderManager()和innerAudioContext對象,調用play方法播放,結合表單,可以添加錄音和播放按鈕,用數(shù)據(jù)綁定保存路徑,注意上傳服務器保存錄音文件以便持久化存儲
    2024-10-10
  • JavaScript實現(xiàn)一個簡單的圣誕游戲

    JavaScript實現(xiàn)一個簡單的圣誕游戲

    圣誕節(jié)即將來臨,大家都在發(fā)圣誕樹,小編今天就為大家介紹一個基于JavaScript實現(xiàn)的圣誕小游戲,文中的示例代碼簡單易懂,感興趣的可以學習一下
    2021-12-12
  • fmt:formatDate的輸出格式詳解

    fmt:formatDate的輸出格式詳解

    本篇文章主要是對fmt:formatDate的輸出格式進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • JS保存、讀取、換行、轉Json報錯處理方法

    JS保存、讀取、換行、轉Json報錯處理方法

    JS保存、讀取 換行 轉Json報錯異常信息:Unexpected token ILLEGAL,具體解決方法如下,感性的朋友可以參考下哈
    2013-06-06

最新評論

祥云县| 蒙城县| 叙永县| 黑山县| 南澳县| 宁强县| 朔州市| 宣武区| 依兰县| 武川县| 西青区| 望谟县| 安阳市| 得荣县| 新郑市| 密山市| 哈巴河县| 凌海市| 安宁市| 益阳市| 巴林右旗| 花莲县| 博罗县| 白城市| 金堂县| 海安县| 嘉鱼县| 囊谦县| 新民市| 汝阳县| 平舆县| 临沧市| 红桥区| 教育| 大安市| 阿拉善盟| 泽库县| 旅游| 永济市| 扎兰屯市| 林芝县|