利用Canvas js實現貪吃蛇 4

2021-07-13 23:48:11 字數 1824 閱讀 5976

將貪吃蛇改造成物件導向,類似外掛程式的東西。

過程中,要把握好this的指向,因為這個,除錯了好大會

將randfood進行了修正,新增了乙個配置引數與預設引數合併方法,其他的都還是一樣的。

html**沒有改,在第一篇文章裡

**附上:

function tanchishe(options) 

this.settings(options, defaults);

this.init();

this.update();

var self = this;

document.onkeydown = function(event) else

}}// 將配置引數和預設引數合併

tanchishe.prototype.settings = function(options, defaults) ;

for (var i in defaults) else if (typeof options[i] === 'object') }}

}}// 隨機生成食物

tanchishe.prototype.randfood = function() while (this.isbody(this.food_x, this.food_y));

}// 判斷食物是否在蛇的身體上

tanchishe.prototype.isbody = function(param_x, param_y)

}// 判斷食物是否在蛇的身體上

var snakelast = this.snake[this.snakelength - 1];

if (snakelast)

}return false;

}// 定時更新畫面

tanchishe.prototype.update = function() else

}, self.ops.speed)

}// 繪製貪吃蛇

tanchishe.prototype.drawsnake = function()

// 增加頭

tanchishe.prototype.addhead = function(param_x, param_y)

// 增加蛇頭

// 檢測頭是否 碰到身體

if (this.snakelength > 3 && this.isbody(newx, newy)) else );

this.draw(this.snake[0].x, this.snake[0].y);

}}// 檢測是否吃到食物

tanchishe.prototype.checkfood = function()

}// 清除

tanchishe.prototype.clear = function(param_x, param_y)

// 畫小方塊

tanchishe.prototype.draw = function(param_x, param_y)

// 初始化函式

tanchishe.prototype.init = function()

this.snake.push();

this.randfood();

this.draw(this.food_x, this.food_y);

this.draw(this.snake[0].x, this.snake[0].y);

}function tcs(options)

在html中呼叫就行了

window.οnlοad=function());

}

實現貪吃蛇

貪吃蛇 1.它的移動我們採用頭部加乙個尾巴減乙個 2.我們將view的大小分成很多個格仔 3.蛇的移動是以乙個格仔為單位 created by administrator on 2016 10 11.public class gameview extends view public gameview...

c 實現貪吃蛇

include include include include include include include include include word square color 7 義方向 define key up 72 define key down 80 define key left 75...

canvas實現貪吃蛇

效果圖ps 這個只是思路,詳細可看 注釋 一 先把蛇畫出來 定義一下蛇的結構,用乙個陣列儲存一堆矩形,包含蛇頭 紅 和蛇身 灰 畫蛇 初始狀態 二 蛇能動 重點 蛇移動方式 自始至終都只有蛇頭在動 需要乙個儲存方向的變數 direction 根據方向進行移動,一次移動乙個格 根據按鍵改方向 三 隨機...