成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼

HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼

熱門標(biāo)簽:怎么做百度地圖標(biāo)注 小朱地圖標(biāo)注 百度地圖標(biāo)注為什么總是封號(hào) 400開頭的電話好申請(qǐng)不 咸陽穩(wěn)定外呼系統(tǒng)軟件 智能芯電話機(jī)器人 四川移動(dòng)電銷外呼客戶管理系統(tǒng) 臨海地圖標(biāo)注app 地圖標(biāo)注柱狀圖
 
游戲操作說明

通過方向鍵控制貪吃蛇上下左右移動(dòng)。貪吃蛇吃到食物之后會(huì)變長一個(gè)長度。

游戲具體實(shí)現(xiàn)

游戲難點(diǎn)是怎么模擬貪吃蛇的移動(dòng)。如果只是一個(gè)方塊的話顯然很簡單。但是當(dāng)蛇的長度變長之后要怎么樣控制

每個(gè)方塊的移動(dòng)呢?

如果觀察蛇的移動(dòng),可以發(fā)現(xiàn),從蛇的頭部到尾部,每個(gè)方塊在下一時(shí)刻的位置就是它的前一個(gè)方塊在當(dāng)前時(shí)刻

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

另外一個(gè)值得注意的問題是

貪吃蛇吃下食物之后,新增加的方塊應(yīng)該放在哪個(gè)位置。

答案就是在下一時(shí)刻,新增加的方塊應(yīng)該出現(xiàn)在當(dāng)前時(shí)刻的尾部位置。

因此,在吃下食物之后應(yīng)該在更新蛇的每個(gè)位置之前,增加一個(gè)方塊,并且將其位置設(shè)定在當(dāng)前時(shí)刻的尾部位置。

然后在當(dāng)前時(shí)刻更新出了新增方塊之外的所有方塊的位置

index.html
 
snake.js

復(fù)制代碼
代碼如下:

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);
}

相關(guān)閱讀:html5貪吃蛇游戲使用63行代碼完美實(shí)現(xiàn)

標(biāo)簽:陜西 黃石 黃石 公主嶺 南平 平頂山 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼》,本文關(guān)鍵詞  HTML5,貪吃,蛇,游戲,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产浴室偷窥在线播放| 日本不卡视频| 99精品视频一区二区| 精品免费一区二区| av免费观看网址| 国产无码精品一区二区| 91精品国产乱| 6080yy精品一区二区三区| 欧美日中文字幕| 欧美成人乱码一二三四区免费| 91国内精品久久| 欧美色图影院| 九色国产在线观看| 日本特黄特色aaa大片免费| 国产精彩精品视频| 国产区视频在线观看| 国产69精品久久久久999小说| 国产亚洲欧美日韩精品一区二区三区| 欧美三级日韩三级国产三级| 国产乱码精品一区二区三区卡| 日本三级电影免费观看| 免费一级特黄3大片视频| 污网站视频在线观看| 亚洲伦理一区二区| 天天夜夜人人| 可以免费观看av毛片| 日韩欧美精品在线观看视频| 国产欧美一区二区三区久久人妖| 柠檬福利视频导航| 97香蕉碰碰人妻国产欧美| 黄污在线观看| 欧美激情精品久久久久久蜜臀| 欧美在线亚洲在线| 欧美精品电影在线播放| 欧美中文字幕在线视频| 明星乱亚洲合成图.com| 久草免费在线观看视频| 外卖gayxxxxgay1| 国产精品久久久久久人| 一区视频免费观看| 日韩免费中文专区| 日韩欧美中文字幕视频| youjizz亚洲女人| 亚洲国产日韩a在线播放| 欧美乱人伦中文字幕在线| 中文字幕资源站| 先锋影音欧美官网| 国产在线视频资源| 清纯唯美亚洲经典中文字幕| 一级女性全黄久久生活片免费| 天天干天天舔| 精品国产乱码久久久久久蜜臀| 中文官网资源新版中文第二页在线观看| 五月天视频在线观看| 久久国内精品视频| 玖玖在线免费视频| 久久久久久久久久网| 日韩美脚连裤袜丝袜在线| 国模大胆一区二区三区| 国产又粗又大又黄| 欧美精品一区二区性色a+v| 欧美性猛交xxxxx少妇| 一区二区三区导航| 精品成人免费观看| 麻豆国产高清在线播放| 久久av超碰| 欧美亚洲系列| 九色蝌蚪视频在线| 国产又粗又猛又黄又爽无遮挡| 亚洲乱码中文字幕久久孕妇黑人| 日本视频一区在线观看| 欧美电影《轻佻寡妇》| 欧美麻豆久久久久久中文| 日韩av一二三区| 免费在线观看av的网站| av动漫在线看| 在线观看视频亚洲| 国产精品推荐精品| 2019年中文字幕| 无码人妻精品一区二区蜜桃百度| 国产精品视频123| 国产免费一区二区三区最新6| 一本色道久久综合狠狠躁篇怎么玩| 天天射—综合中文网| 黄色电影免费在线看| 99久久久国产精品美女| 亚洲性生活视频| 91亚洲精品久久久蜜桃借种| 天堂中文www在线| 黄色一级大片在线免费观看| 亚洲国产日韩在线一区模特| 日本一区二区三区四区高清视频| 国产精品黄色| 国产精品无码一本二本三本色| 久久露脸国产精品| 欧美亚洲大片| 国产婷婷视频在线| 美女av一区| 性刺激的欧美三级视频| 国产欧美在线视频| 四虎永久免费观看| 一本一道人人妻人人妻αv| 精品制服美女久久| 亚洲精品中文在线观看| 亚洲一区二区三区乱码| 久久久久久噜噜噜久久久精品| 91麻豆精品| 国产成人av资源| 亚洲免费网站在线观看| 午夜成年人在线免费视频| 日韩欧美国产片| 久久久99免费视频| 精品国产免费一区二区三区| 久久这里只有精品视频首页| caopo在线| 伊人国产在线看一| 99在线免费视频观看| www.亚洲国产| 国产69精品久久777的优势| 黄网在线播放| 国产亚洲高清视频| 另类视频在线观看| 亚洲乱码中文字幕| 五月天av影院| 久久久影院一区二区三区| 成年人网站在线观看免费| 波多野结衣片子| 美丽的姑娘在线观看免费动漫| 捆绑变态av一区二区三区| 黄色在线免费网站| 一区二区在线| 欧美成a人片免费观看久久五月天| av中文字幕不卡| 在线一区二区三区| 欧美激情一级片一区二区| 欧美在线www| 九九视频免费观看视频精品| 国产超碰在线播放| 久久都是精品| 日韩大片一区二区| 国产激情视频一区二区三区欧美| 亚洲第一精品夜夜躁人人躁| 六月丁香久久丫| 欧日韩一区二区三区| 久久夜色精品国产欧美乱极品| 亚洲小说区图片区都市| 日本资源在线| 亚洲自拍另类综合| 日本xxxx裸体xxxx| 日本一道高清亚洲日美韩| 精品国产亚洲一区二区三区在线| 欧美日韩中文字幕精品| 欧美三级一区二区| 国产成人在线视频免费播放| 手机看片1024日韩| 亚洲综合在线不卡| 欧美专区18| 五月激情六月丁香| 精品少妇一二三区| 7777精品伊人久久久大香线蕉最新版| 诱人的瑜伽老师3hd中字| 永久免费无码av网站在线观看| 日韩一区二区三免费高清| 亚洲精品7777xxxx青睐| 亚洲黄色片视频| 国产精品av久久久久久麻豆网| 国产av一区二区三区| 日韩在线免费观看av| 亚洲一区二区精品久久av| 久久精品观看| 欧美极品中文字幕| 2001个疯子在线观看| 色综合久久影院| 日韩高清中文字幕一区| 九九热视频免费观看| 免费 成 人 黄 色| 日韩美一区二区| 中文av一区二区| 神马电影久久| 精品人妻大屁股白浆无码| 久久理论片午夜琪琪电影网| 欧美一二三在线| 日本一本中文字幕| 成人做爰视频www网站小优视频| 中文字幕日本精品| 人人玩人人添人人澡欧美| 三年中国国语在线播放免费| 亚洲一本大道在线| 99热99在线| 成人黄视频免费| 亚洲色图图片网| 翁止熄痒禁伦短文合集免费视频| 黄色成人在线视频| 另类小说一区二区三区| 日韩免费毛片视频| 国产最顶级的黄色片在线免费观看| 亚洲美免无码中文字幕在线| 免费无码一区二区三区| 深夜成人影院| 真实的国产乱xxxx在线91| 天堂日韩电影| 91网址在线播放| 极度色播免费播放视频| 亚洲人成毛片在线播放| 中国在线观看免费国语版电影| 亚洲深夜福利在线观看| 欧美在线视频全部完| 欧美一区二区在线免费观看| 夜夜嗨av一区二区三区网站四季av| 玖玖爱在线精品视频| 国产乱码精品一区二三区蜜臂| 欧美日韩国产综合久久| 97超级碰碰碰久久久| 老**午夜毛片一区二区三区| 2019国产精品| 轻点好疼好大好爽视频| 亚洲的天堂在线中文字幕| 国产精久久久久久| 小说区图片区综合久久亚洲| 久久久久无码国产精品一区李宗瑞| 岛国精品一区二区| 日韩欧美视频在线| 黄页网站在线观看视频| 99re免费99re在线视频手机版| 成人免费视频| 国产一区精品| 成网站在线观看人免费| 亚洲成人免费| xxxxx欧美| 久久精品中文字幕电影| 草久视频在线观看| 99热这里只有精品在线播放| www.激情.com| 亚洲一区在线观看网站| 黄色影院一级片| 国产5g成人5g天天爽| 免费国产自线拍一欧美视频| 日韩激情中文字幕| 在线观看污污网站| 在线一区二区日韩| 免费影视观看网站入口| 九九视频免费观看视频精品| 国产亚洲成人精品| 国产精品99精品久久免费| 一级做a爱片久久毛片| 97在线看福利| 99亚洲国产精品| 精品久久久久久中文字幕大豆网| 亚洲精品电影久久久| 91黑丝高跟在线| 粗暴蹂躏中文一区二区三区| 密臀av一区二区三区| 亚洲深爱激情| 日韩久久久久久久久久| 国产精品刘玥久久一区| 天天干天天舔天天操| 欧美综合二区| 国内视频一区二区| 国产精品一二三区| av福利在线| 欧美激情视频一区二区三区在线播放| 日韩欧美色综合网站| 色婷婷色综合| 区一区二日本| 777视频在线观看| 看片网站欧美日韩| 99精品一区二区三区| 97香蕉久久夜色精品国产| 欧美大片在线播放| 日韩经典av| 91.麻豆视频| 精品久久久久久久久久ntr影视| 巨大荫蒂视频欧美大片| 亚洲视频三区| 国产成人精品在线看| 岳的好大精品一区二区三区| 日韩1区2区3区| 久久99国产综合精品免费| 玖玖视频精品| 五十路在线观看| 天天躁夜夜躁狠狠是什么心态| 日韩经典av| 51av在线| caoporn国产精品免费视频| 不卡的av一区| 亚洲欧美日韩精品久久久| 欧美aaa级片| 国产欧美三级电影| 欧美性少妇18aaaa视频| 成人中文字幕合集| 国产一区二区在线免费观看| 亚洲精品视频一二三| 亚洲精品一区中文字幕乱码| 亚洲天堂第一页| 成人免费视频观看| 岛国最新视频免费在线观看| 亚洲女同ⅹxx女同tv| 色视频在线免费观看| 麻豆精品永久免费视频| 国产高潮久久久| 在线看成人av| 中文字幕在线字幕中文| 天堂√8在线中文| 欧美成人三级在线播放| 亚洲国产视频在线| av免费高清观看| 欧美日韩一区二区三| www.黄色av| 污污污污污污www网站免费| 亚洲v国产v在线观看| 亚洲国产精品一区二区久久恐怖片| 久久免费视频这里只有精品| 色呦呦网站一区| 91亚洲天堂| 操你啦视频在线| 成人在线播放av| 成人午夜免费福利| 国产高清美女一级毛片久久| 亚洲电影av| 手机在线不卡av| 久久精品凹凸全集| 国内自拍亚洲| 亚洲精品视频播放| 欧美精品情趣视频| 51色欧美片视频在线观看| 久久av一区| 久久久久久久久久久久久久一区| 中文字幕免费高清视频|