js貪吃蛇的詳細介紹

2021-08-20 04:49:54 字數 2648 閱讀 7295

//模擬貪吃蛇遊戲,做的專案/**

* 地圖: 寬,高,背景顏色,因為小蛇和食物都是相對於地圖顯示的,這裡小蛇和食物都是地圖的子元素,隨機位置顯示,脫離文件流的,地圖也需要脫離文件流--css需要設定:寬,高,背景顏色,脫標

** 食物---div元素

* elements--->儲存div的陣列(將來刪除的食物div時候,先從map中刪除div,再從陣列中移除div)

* 食物:寬,高,背景顏色,橫座標,縱座標

* 乙個食物就是乙個物件,這個物件有相應的屬性,這個物件需要在地圖上顯示

* 最終要建立食物的物件,先 有建構函式,並且把相應的值作為引數傳入到建構函式中

* 食物要想顯示在地圖上,食物的初始化就是乙個行為

* 1.食物的建構函式--->建立食物物件

* 2.食物的顯示的方法-->通過物件呼叫方法,顯示食物,設定相應的樣式

* 2.1.1 因為食物要被小蛇吃掉,吃掉後應該再次出現食物,原來的食物就刪除了

* 2.1.2 每一次初始化食物的時候先刪除原來的食物,然後重新的初始化食物

* 2.1.3 通過乙個私有的函式(外面不能呼叫的函式)刪除地圖上的食物,同時最開始的時候食物也相應的儲存到乙個陣列中,再從這個陣列中把食物刪除

* 最後的時候,把食物的建構函式給window下的屬性,這樣做,外部就可以直接使用這個食物的建構函式了

** 小蛇

* 小蛇就是乙個物件

* 屬性: 每個身體都有寬,高,方向

* 屬性:身體分三個部分,每個部分都是乙個物件,每個部分都有橫縱座標,背景顏色

* 小蛇要想顯示在地圖上,先刪除之前的小蛇,然後再初始化小蛇(小蛇要移動)--方法

** 小蛇要移動---方法

* 思路:把小蛇的頭的座標給小蛇第一部分的身體,第一部分的身體的座標給下乙個部分身體

* 小蛇的頭,需要單獨的設定:方向

*1、主頁面

2、js頁面

(1)food.js

//自呼叫函式----食物

(function ()

//為原型新增初始化的方法(作用:在頁面上顯示這個食物)

//因為食物要在地圖上顯示,所以,需要地圖的這個引數(map--就是頁面上的.class=map的這個div)

food.prototype.init = function (map) ;

//私有的函式---刪除食物的

function remove()

}//*******把food暴露給window,外部可以使用

window.food = food;

}());

(2)game.js

//自呼叫函式----遊戲物件

(function ()

game.prototype.init = function () ,150);

//呼叫自動移動小蛇的方法

this.runsnake(this.food, this.map, this.snake);

此時沒有傳參,所以下面用的是this.snake 而不是snake

this.bindkey(this.snake);

};//新增原型方法---設定小蛇可以自動的跑起來

game.prototype.runsnake = function (food, map, snake)

if (heady < 0 || heady >= maxy)

}.bind(that), 150);

};//新增原型方法--設定使用者按鍵,改變小蛇移動的方向

// game.prototype.bindkey = function ()

// }.bind(that), false)

// };

game.prototype.bindkey = function (snake)

}.bind(that), false)

};window.game = game;

}());

(3)snake.js

//自呼叫函式--小蛇

(function () ,//蛇頭

,//身體

//身體];}

snake.prototype.init = function (map)

};//為原型新增方法,小蛇動起來

snake.prototype.move = function (food, map)

// 判斷方向--改變小蛇的頭的座標位置

switch (this.direction)

var headx = this.body[0].x * this.width;

var heady = this.body[0].y * this.height;

console.log(headx + "===" + food.x);

if (headx == food.x && heady == food.y) );

food.init(map);}//

//};

//刪除小蛇的私有的函式

function remove()

}window.snake = snake;

}());

JS小遊戲貪吃蛇 詳細注釋

執行 框 貪吃蛇綠色食物 灰色毒品 藍色滑板 紅色剎車 最高分 0 tips ie element.innertext ff element.textcontent setattribute cellpadding 0 在ie中無效,正確寫法cellpadding 一不小心就犯錯了 ff中,使用繫結...

js 實現貪吃蛇專案

近來在學習js高階,便學習著做個網頁版貪吃蛇專案。map tools.js function window.tools tools food.js function game.prototype.start function function runsnake if heady 0 heady ma...

js貪吃蛇(建構函式)

給大家分享一下這幾天我研究的乙個貪吃蛇,挺簡單的,但是實現起來其實有點繞的,我給大家附上完整 一起分析學習一下,主要用的是建構函式。思想 1 設計蛇 屬性有寬 高 方向 狀態 有多少節 方法 顯示,跑 2 設計食物 屬性寬 高 3 顯示蛇 根據狀態向地圖裡加元素 4 蛇跑起來 下一節到前一節的位置,...