麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JavaScript > 正文

JS實現簡易版貪吃蛇小游戲

2020-03-24 19:08:30
字體:
來源:轉載
供稿:網友
 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd  html  head  title 新建網頁 /title  meta http-equiv= Content-Type content= text/html; charset=utf-8 /  meta name= description content= /  meta name= keywords content= /  script type= text/javascript  //① 繪制地圖 function Map() { //私有成員(不會隨便發生變化) var w = 800; var h = 400; //成員方法,繪制地圖 this.showmap = function () { //創建p、設置css樣式、追加給body var tu = document.createElement( p  tu.style.width = w + px  tu.style.height = h + px  tu.style.backgroundImage = url(./12.jpg)  document.body.appendChild(tu); //② 繪制食物 function Food() { var len = 20; //把食物(權值)坐標聲明為公開的,以便在外部訪問 this.xFood = 0; this.yFood = 0; this.piece = null; //頁面上唯一的食物對象 //繪制 this.showfood = function () { //創建p、設置css樣式、追加給body if (this.piece === null) { this.piece = document.createElement( p  this.piece.style.width = this.piece.style.height = len + px  this.piece.style.backgroundColor = green  this.piece.style.position = absolute  document.body.appendChild(this.piece); //食物設置絕對定位(position/left/top) //食物位置“隨機”擺放 //移動步進值:20px //食物“權值”坐標: X軸(0-39) Y軸(0-19)  //食物真實坐標:權值坐標 * 步進值 this.xFood = Math.floor(Math.random() * 40); //0-39的隨機數 this.yFood = Math.floor(Math.random() * 20); //0-19的隨機數 this.piece.style.left = this.xFood * len + px  this.piece.style.top = this.yFood * len + px  //③ 小蛇 function Snake() { var len = 20; this.redirect = right //默認向右邊移動 //后期snakebody要變化,因此聲明為公開的(每個蛇節:[x坐標,y坐標,顏色,蛇節對象]) this.snakebody = [[0, 1, green , null], [1, 1, green , null], [2, 1, green , null], [3, 1, red , null]]; //a.繪制小蛇 this.showsnake = function () { //遍歷小蛇的各個蛇節,并依次創建即可 for (var i = 0; i this.snakebody.length; i++) { //this.snakebody[i]//代表每個蛇節 //創建蛇節p if (this.snakebody[i][3] === null) {//判斷沒有創建對應的蛇節 this.snakebody[i][3] = document.createElement( p  //設置css樣式(寬度、高度、顏色) this.snakebody[i][3].style.width = this.snakebody[i][3].style.height = len + px  this.snakebody[i][3].style.backgroundColor = this.snakebody[i][2]; //絕對定位及位置 this.snakebody[i][3].style.position = absolute  //把蛇節追加給body document.body.appendChild(this.snakebody[i][3]); this.snakebody[i][3].style.left = this.snakebody[i][0] * len + px  this.snakebody[i][3].style.top = this.snakebody[i][1] * len + px  //b.移動小蛇 this.movesnake = function () { //非蛇頭蛇節(當前蛇節的新坐標 是 下個蛇節 的舊坐標) for (var i = 0; i this.snakebody.length - 1; i++) { this.snakebody[i][0] = this.snakebody[i + 1][0]; this.snakebody[i][1] = this.snakebody[i + 1][1]; if (this.redirect == right ) { //蛇頭x坐標遞增 this.snakebody[this.snakebody.length - 1][0] += 1; if (this.redirect == left ) { //蛇頭x坐標遞減 this.snakebody[this.snakebody.length - 1][0] -= 1; if (this.redirect == up ) { //蛇頭y坐標遞減 this.snakebody[this.snakebody.length - 1][1] -= 1; if (this.redirect == down ) { //蛇頭y坐標遞增 this.snakebody[this.snakebody.length - 1][1] += 1; //判斷蛇頭碰到食物 //蛇頭坐標 var xSnake = this.snakebody[this.snakebody.length - 1][0]; var ySnake = this.snakebody[this.snakebody.length - 1][1]; //食物坐標food.xFood/food.yFood; if (xSnake == food.xFood ySnake == food.yFood) { //吃食物增加蛇節 var newjie = [this.snakebody[0][0], this.snakebody[0][1], green , null]; this.snakebody.unshift(newjie);//把newjie放到數組的第一個位置去 //原食物消失,重新生成一個食物 food.showfood(); //控制小蛇在地圖范圍內移動 if (xSnake 0 || xSnake 39 || ySnake 0 || ySnake 19) { alert( game over  clearInterval(mytime); return false; //吃到自己判斷(蛇頭坐標與其他蛇節坐標一致) for (var k = 0; k this.snakebody.length - 1; k++) { if (this.snakebody[k][0] == xSnake this.snakebody[k][1] == ySnake) { alert( game over kill you by yourself  clearInterval(mytime); return false; //根據新坐標繪制小蛇 this.showsnake(); window.onload = function () { var map = new Map(); map.showmap(); food = new Food();//聲明為全局的以便在該加載事件函數外部訪問 food.showfood(); snake = new Snake();//聲明為全局的snake對象 snake.showsnake(); //移動小蛇 //setInterval(全局變量,時間) mytime = setInterval( snake.movesnake() , 200); //設置鍵盤事件,控制器小蛇移動方向 document.onkeydown = function (evt) { var num = evt.keyCode;//通過事件對象獲得數值碼,進而知道被觸發鍵子 if (num == 38) { snake.redirect = up  if (num == 40) { snake.redirect = down  if (num == 37) { snake.redirect = left  if (num == 39) { snake.redirect = right  /script  style type= text/css  body { margin: 0; /style  /head  body /body  /html 

本文展示了JS實現簡易版貪吃蛇小游戲的相關代碼,更多相關內容請關注噴繪php 。
相關推薦:

簡易 PHP+MySQL 分頁類

HTML轉Excel,并實現打印,下載功能

兩個不用遞歸的樹形數組構造函數

以上就是JS實現簡易版貪吃蛇小游戲的詳細內容,html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲欧美aⅴ | 全黄性性激高免费视频 | 久久久久夜色精品国产老牛91 | 销魂美女一区二区 | 亚洲国产精品500在线观看 | 羞羞视频免费网站男男 | 亚洲骚图 | 久久久久久久一区二区三区 | 国产毛片在线看 | 亚州综合网 | av手机免费在线观看 | 黄色一级片免费观看 | 最新av在线免费观看 | www.99re14.com | 欧美无极品 | 97视频 | 精品国产一区二区三区四 | 国产一级性生活视频 | 免费观看一级 | 欧美精品在线免费观看 | 国产亚洲精品久久午夜玫瑰园 | 在线成人毛片 | 中文字幕在线成人 | 91短视频版高清在线观看www | 黄色电影免费提供 | 在线亚洲欧美 | 欧美aⅴ视频 | 国av在线| 特级黄色影院 | 羞羞羞网站 | 日韩精品中文字幕一区 | 黄色视品| 午夜精品成人一区二区 | 亚洲国产精品久久久久制服红楼梦 | 999精品国产 | 牛牛碰在线视频 | 欧美一区二区三区中文字幕 | 一级黄色片武则天 | 91精品国产91 | 久久91久久久久麻豆精品 | 日本免费aaa观看 |