最近我在學習jquery,聽說jquery可以幫助我們開發出很多有趣的小游戲,比如貪吃蛇。然而,當我試圖用jquery做貪吃蛇時,發現自己根本做不來!
首先,jquery雖然可以進行很多DOM操作,但是對于游戲的邏輯控制,卻沒有太多支持。比如,我需要實現貪吃蛇的身體隨著吃到食物而變長的邏輯,我只能使用傳統的JavaScript來實現,而無法使用jquery的快捷寫法。這讓我感覺很不自在。
(function addBody() { var last = snakeArr[snakeArr.length-1]; var body = $('<div>').addClass('body').appendTo($box); body.css({ left: last.position().left, top: last.position().top }); snakeArr.push(body); })();
另外,jquery對于canvas的支持也十分有限,而canvas又是貪吃蛇等游戲中不可或缺的重要組件。我發現我需要頻繁的使用定時器和canvas來實現游戲的繪制、移動等操作,但是jquery對于canvas的操作實在是太過麻煩了,這讓我的代碼看起來十分冗長。
var timer = null; timer = setInterval(function() { ctx.clearRect(0, 0, canvas.width, canvas.height); drawWall(); drawSnake(); drawFood(); snakeMove(); eatFood(); }, 200);
最后,我還發現jquery對于鍵盤事件的處理似乎也不是很完善。當我需要監聽用戶按下方向鍵的時候,我只能使用普通的JavaScript寫法來實現,而jquery的事件監聽機制在這里并沒有優勢。
$(document).keydown(function(e) { var code = e.keyCode; if (code === 37) { dir = 'left'; } else if (code === 38) { dir = 'up'; } else if (code === 39) { dir = 'right'; } else if (code === 40) { dir = 'down'; } });
綜上所述,雖然jquery是一種非常方便的庫,但是對于游戲開發來說并不是最佳選擇。如果你也像我一樣,試圖用jquery來寫貪吃蛇卻失敗了,不要灰心,換一種方式,用原生JavaScript來寫游戲可能會更容易哦!