校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > HTML5 貪吃蛇游戲實現思路及源代碼

HTML5 貪吃蛇游戲實現思路及源代碼

熱門標簽:怎么做百度地圖標注 小朱地圖標注 百度地圖標注為什么總是封號 400開頭的電話好申請不 咸陽穩定外呼系統軟件 智能芯電話機器人 四川移動電銷外呼客戶管理系統 臨海地圖標注app 地圖標注柱狀圖
 
游戲操作說明

通過方向鍵控制貪吃蛇上下左右移動。貪吃蛇吃到食物之后會變長一個長度。

游戲具體實現

游戲難點是怎么模擬貪吃蛇的移動。如果只是一個方塊的話顯然很簡單。但是當蛇的長度變長之后要怎么樣控制

每個方塊的移動呢?

如果觀察蛇的移動,可以發現,從蛇的頭部到尾部,每個方塊在下一時刻的位置就是它的前一個方塊在當前時刻

的位置。因此我們需要做的只是控制貪吃蛇的頭部的運動。其他部分的位置都可以依次類推。

另外一個值得注意的問題是

貪吃蛇吃下食物之后,新增加的方塊應該放在哪個位置。

答案就是在下一時刻,新增加的方塊應該出現在當前時刻的尾部位置。

因此,在吃下食物之后應該在更新蛇的每個位置之前,增加一個方塊,并且將其位置設定在當前時刻的尾部位置。

然后在當前時刻更新出了新增方塊之外的所有方塊的位置

index.html
 
snake.js

復制代碼
代碼如下:

var canvas;
var ctx;
var timer;
//measures
var x_cnt = 15;
var y_cnt = 15;
var unit = 48;
var box_x = 0;
var box_y = 0;
var box_width = 15 * unit;
var box_height = 15 * unit;
var bound_left = box_x;
var bound_right = box_x + box_width;
var bound_up = box_y;
var bound_down = box_y + box_height;
//images
var image_sprite;
//objects
var snake;
var food;
var food_x;
var food_y;
//functions
function Role(sx, sy, sw, sh, direction, status, speed, image, flag)
{
this.x = sx;
this.y = sy;
this.w = sw;
this.h = sh;
this.direction = direction;
this.status = status;
this.speed = speed;
this.image = image;
this.flag = flag;
}
function transfer(keyCode)
{
switch (keyCode)
{
case 37:
return 1;
case 38:
return 3;
case 39:
return 2;
case 40:
return 0;
}
}
function addFood()
{
//food_x=box_x+Math.floor(Math.random()*(box_width-unit));
//food_y=box_y+Math.floor(Math.random()*(box_height-unit));
food_x = unit * Math.floor(Math.random() * x_cnt);
food_y = unit * Math.floor(Math.random() * y_cnt);
food = new Role(food_x, food_y, unit, unit, 0, 0, 0, image_sprite, true);
}
function play(event)
{
var keyCode;
if (event == null)
{
keyCode = window.event.keyCode;
window.event.preventDefault();
}
else
{
keyCode = event.keyCode;
event.preventDefault();
}
var cur_direction = transfer(keyCode);
snake[0].direction = cur_direction;
}
function update()
{
//add a new part to the snake before move the snake
if (snake[0].x == food.x && snake[0].y == food.y)
{
var length = snake.length;
var tail_x = snake[length - 1].x;
var tail_y = snake[length - 1].y;
var tail = new Role(tail_x, tail_y, unit, unit, snake[length - 1].direction, 0, 0, image_sprite, true);
snake.push(tail);
addFood();
}
//modify attributes
//move the head
switch (snake[0].direction)
{
case 0: //down
snake[0].y += unit;
if (snake[0].y > bound_down - unit)
snake[0].y = bound_down - unit;
break;
case 1: //left
snake[0].x -= unit;
if (snake[0].x < bound_left)
snake[0].x = bound_left;
break;
case 2: //right
snake[0].x += unit;
if (snake[0].x > bound_right - unit)
snake[0].x = bound_right - unit;
break;
case 3: //up
snake[0].y -= unit;
if (snake[0].y < bound_up)
snake[0].y = bound_up;
break;
}
//move other part of the snake
for (var i = snake.length - 1; i >= 0; i--)
{
if (i > 0)
//snake[i].direction=snake[i-1].direction;
{
snake[i].x = snake[i - 1].x;
snake[i].y = snake[i - 1].y;
}
}
}
function drawScene()
{
ctx.clearRect(box_x, box_y, box_width, box_height);
ctx.strokeStyle = "rgb(0,0,0";
ctx.strokeRect(box_x, box_y, box_width, box_height);
//detection collisions
//draw images
for (var i = 0; i < snake.length; i++)
{
ctx.drawImage(image_sprite, snake[i].x, snake[i].y);
}
ctx.drawImage(image_sprite, food.x, food.y);
}
function init()
{
canvas = document.getElementById("scene");
ctx = canvas.getContext('2d');
//images
image_sprite = new Image();
image_sprite.src = "images/sprite.png";
image_sprite.onLoad = function ()
{}
//ojects
snake = new Array();
var head = new Role(0 * unit, 0 * unit, unit, unit, 5, 0, 1, image_sprite, true);
snake.push(head);
window.addEventListener('keydown', play, false);
addFood();
setInterval(update, 300); //note
setInterval(drawScene, 30);
}

相關閱讀:html5貪吃蛇游戲使用63行代碼完美實現

標簽:陜西 平涼 黃石 黃石 公主嶺 南平 平頂山 山南

巨人網絡通訊聲明:本文標題《HTML5 貪吃蛇游戲實現思路及源代碼》,本文關鍵詞  HTML5,貪吃,蛇,游戲,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 貪吃蛇游戲實現思路及源代碼》相關的同類信息!
  • 本頁收集關于HTML5 貪吃蛇游戲實現思路及源代碼的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    不卡av免费在线观看| 色香色香欲天天天影视综合网| 亚洲与欧洲av电影| 一区二区三区在线免费播放| 亚洲欧美日韩在线不卡| 亚洲欧美在线高清| 亚洲欧美日本韩国| 婷婷开心久久网| 美腿丝袜亚洲一区| 国产精品亚洲午夜一区二区三区 | 一区二区三区蜜桃| 夜夜操天天操亚洲| 日韩电影在线一区二区三区| 精品伊人久久久久7777人| 国产成人免费在线观看不卡| 不卡一区中文字幕| 欧美日韩高清在线播放| 精品国产自在久精品国产| 国产日韩欧美精品综合| 亚洲乱码国产乱码精品精小说| 亚洲精品国久久99热| 青青草精品视频| 成人午夜电影久久影院| 欧美午夜精品久久久久久孕妇| 在线91免费看| 国产精品美女久久久久久| 亚洲国产成人va在线观看天堂| 激情综合亚洲精品| 97aⅴ精品视频一二三区| 日韩一二在线观看| 亚洲欧洲日本在线| 精品写真视频在线观看 | 欧美精品乱码久久久久久| 欧美一级生活片| 国产精品每日更新| 免费在线观看一区二区三区| 不卡的av在线播放| 欧美www视频| 亚洲乱码一区二区三区在线观看| 国产主播一区二区| 欧美色综合影院| 国产精品三级视频| 久色婷婷小香蕉久久| 91在线观看高清| 久久亚洲一区二区三区四区| 亚洲va国产va欧美va观看| 波多野结衣亚洲一区| 日韩免费看网站| 天天综合天天做天天综合| 91亚洲国产成人精品一区二区三| 精品精品国产高清一毛片一天堂| 亚洲精品国产品国语在线app| 精一区二区三区| 欧美一区二区三区四区在线观看| 亚洲天堂2016| 99re成人精品视频| 国产精品美日韩| 国产91对白在线观看九色| 欧美大片顶级少妇| 免费成人小视频| 5566中文字幕一区二区电影| 一区二区三区精品久久久| 成人av资源网站| 国产精品美女www爽爽爽| 国产精品影视网| 久久色.com| 国产高清不卡一区二区| 久久精品视频免费| 国产99久久久精品| 中文字幕av一区二区三区高| 国产成人精品综合在线观看| 久久午夜色播影院免费高清| 国产一区二区三区日韩| www久久精品| 国产麻豆91精品| 国产欧美1区2区3区| av激情成人网| 亚洲黄色录像片| 欧美日韩国产精品成人| 日韩成人精品在线| 久久综合色一综合色88| 国产一区二区伦理片| 国产目拍亚洲精品99久久精品| 国产乱码精品一品二品| 国产精品亲子乱子伦xxxx裸| 99精品在线观看视频| 亚洲一区二区高清| 日韩欧美中文一区| 床上的激情91.| 亚洲欧美国产高清| 欧美久久婷婷综合色| 黄色日韩三级电影| 国产精品对白交换视频 | 激情深爱一区二区| 亚洲国产精品成人综合| 91在线一区二区| 日韩激情一二三区| 久久夜色精品国产噜噜av| 99久久国产综合精品色伊| 日韩精品三区四区| 欧美激情在线观看视频免费| 日本精品裸体写真集在线观看| 丝袜脚交一区二区| 中文字幕免费一区| 欧美男女性生活在线直播观看| 激情成人综合网| 亚洲国产综合视频在线观看| 久久综合九色综合欧美就去吻| 99国产欧美另类久久久精品| 日本aⅴ亚洲精品中文乱码| 亚洲国产精品99久久久久久久久 | 一区二区久久久| 日韩欧美国产1| 91视频www| 国产一本一道久久香蕉| 亚洲伊人伊色伊影伊综合网| 精品动漫一区二区三区在线观看| 在线观看亚洲精品| 国产精品1区2区| 日韩电影在线看| 一区二区三区在线不卡| 国产亚洲成年网址在线观看| 欧美视频精品在线观看| 99视频精品全部免费在线| 精品一区二区免费在线观看| 亚洲第一成人在线| 中文字幕免费在线观看视频一区| 日韩免费福利电影在线观看| 色综合欧美在线视频区| 成人av网在线| 国产成人精品免费一区二区| 精品中文字幕一区二区| 全部av―极品视觉盛宴亚洲| 亚洲国产精品精华液网站| 亚洲精品视频在线观看网站| 国产精品网曝门| 国产精品人妖ts系列视频| 国产人久久人人人人爽| 精品日本一线二线三线不卡| 欧美精品久久一区二区三区| 欧美日韩电影在线| 在线播放国产精品二区一二区四区| 色婷婷综合五月| 91免费小视频| 在线视频欧美精品| 色天使色偷偷av一区二区| 99久久婷婷国产综合精品| 99精品视频一区二区三区| 成人a级免费电影| 99re热这里只有精品视频| 成人app网站| 91香蕉视频在线| 91浏览器在线视频| 色综合色狠狠天天综合色| 欧美亚洲尤物久久| 91精品久久久久久久99蜜桃| 6080yy午夜一二三区久久| 日韩免费在线观看| 国产亚洲一区二区三区在线观看 | 亚洲一区二区av在线| 亚洲综合激情另类小说区| 天天综合网 天天综合色| 三级精品在线观看| 精品一区二区影视| 国v精品久久久网| 色伊人久久综合中文字幕| 欧美日韩亚洲国产综合| 日韩免费电影网站| 亚洲国产精品av| 一区二区三区四区亚洲| 日韩av成人高清| 国产精品一区二区在线观看不卡 | 麻豆精品在线看| 国产成人无遮挡在线视频| 91免费精品国自产拍在线不卡| 色诱视频网站一区| 欧美成人官网二区| 国产精品午夜久久| 五月天中文字幕一区二区| 经典三级视频一区| 色婷婷久久综合| 精品国产三级电影在线观看| 国产精品国产自产拍高清av| 亚洲成人福利片| 成人免费av资源| 日韩一二在线观看| 亚洲区小说区图片区qvod| 琪琪久久久久日韩精品| 97精品国产97久久久久久久久久久久| 欧美丝袜第三区| 欧美国产欧美综合| 免费欧美日韩国产三级电影| 99精品欧美一区| 久久久精品影视| 婷婷中文字幕综合| 在线一区二区三区| 亚洲国产精品传媒在线观看| 欧美bbbbb| 欧美欧美欧美欧美首页| 亚洲图片另类小说|