欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

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

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

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

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

游戲具體實現(xiàn)

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

每個方塊的移動呢?

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

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

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

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

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

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

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

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行代碼完美實現(xiàn)

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

巨人網(wǎng)絡通訊聲明:本文標題《HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼》,本文關鍵詞  HTML5,貪吃,蛇,游戲,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼》相關的同類信息!
  • 本頁收集關于HTML5 貪吃蛇游戲?qū)崿F(xiàn)思路及源代碼的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美精品一区二区高清在线观看| 亚洲精品一区二区三区香蕉| 中文字幕中文在线不卡住| 日本不卡一二三| 黄色av电影网站| 欧美亚洲国产一卡| 亚洲免费观看在线视频| av不卡在线观看| 国产大学生自拍| 亚洲欧美一区二区视频| 成av人片一区二区| 可以直接看的黄色网址| 成人免费一区二区三区视频 | 欧美日韩三级一区二区| 国产一二三区精品| 国产夜色精品一区二区av| 国内外成人在线| 在线观看免费黄色网址| 国产亚洲精品免费| 国产不卡在线一区| 91嫩草丨国产丨精品| 蜜臀精品一区二区三区在线观看 | av一本久道久久综合久久鬼色| 欧美黄色aaa| 成人免费小视频| 亚洲激情图片网| 亚洲午夜免费电影| 国产酒店精品激情| 极品魔鬼身材女神啪啪精品| 亚洲同性gay激情无套| 91玉足脚交白嫩脚丫在线播放| 欧美性一二三区| 午夜电影网一区| 国产精品毛片一区二区| 亚洲国产精品麻豆| 舔着乳尖日韩一区| 国产精品福利一区二区| 成人综合日日夜夜| av女名字大全列表| 亚洲国产视频在线| 亚洲专区区免费| 久久久久久免费| heyzo一本久久综合| 欧美三级日韩三级| 日韩va欧美va亚洲va久久| 国产成人鲁色资源国产91色综| 国产亚洲精品精品精品| 欧美日本免费一区二区三区| 青娱乐精品在线视频| 手机av在线不卡| 亚洲人吸女人奶水| 国产欧美视频在线观看| 久久电影国产免费久久电影| 欧美裸体bbwbbwbbw| 国产又黄又粗又猛又爽的| 中文欧美字幕免费| 91美女片黄在线观看| 日韩欧美亚洲另类制服综合在线| 狠狠色狠狠色合久久伊人| 国产精品白嫩白嫩大学美女| 香蕉乱码成人久久天堂爱免费| 日本二区在线观看| 亚洲女同ⅹxx女同tv| 人妻丰满熟妇av无码久久洗澡 | 一区二区伦理片| 亚洲色图欧美激情| 久久精品一区二区免费播放| 中文字幕一区日韩精品欧美| 日本黄色免费观看| 中文字幕一区二区三区在线不卡| 日本黄色动态图| 中文字幕视频一区| 中文字幕日韩三级片| **欧美大码日韩| 国内精品久久99人妻无码| 自拍av一区二区三区| 丝袜美腿中文字幕| 亚洲精品伦理在线| 337人体粉嫩噜噜噜| 性做久久久久久免费观看| 五月天激情丁香| 免费观看日韩av| 欧美视频在线播放| 国产精品资源在线观看| 欧美一区二区三区公司| 99精品桃花视频在线观看| 久久久国产午夜精品| 99精品一区二区三区无码吞精 | 欧美国产精品专区| 成年人的黄色片| 一区二区三区欧美在线观看| 91ts人妖另类精品系列| 琪琪一区二区三区| 欧美三级乱人伦电影| 成人精品高清在线| 久久久一区二区| 国产精品无码一区二区三| 亚洲日本中文字幕区| 美国黄色片视频| 美国一区二区三区在线播放| 欧美日韩精品一区二区在线播放| 成人av资源在线观看| 久久先锋影音av| 五月婷婷综合在线观看| 亚洲成人tv网| 国产精品888| 欧美精品一区二区三区很污很色的| 精品少妇人妻av一区二区三区| 一区精品在线播放| 日本成人免费在线观看 | 无套内谢大学处破女www小说| 亚洲精品日日夜夜| 91麻豆免费视频网站| 国产一区二区网址| 亚洲精品一区二区三区香蕉| 精品人妻一区二区三区视频| 天天av天天翘天天综合网| 欧美三日本三级三级在线播放| av在线免费不卡| 1024国产精品| 青青青在线免费观看| 国产不卡视频在线观看| 女同久久另类69精品国产| 男人的天堂久久久| 久久99日本精品| 精品粉嫩aⅴ一区二区三区四区| 亚洲第九十七页| 日韩高清一级片| 日韩一区二区在线看| 成人性生活免费看| 日韩高清不卡一区二区三区| 91麻豆精品国产91久久久使用方法| 少妇献身老头系列| 亚洲综合精品久久| 欧美日韩精品一区二区三区四区 | 小泽玛利亚一区| 丰满亚洲少妇av| 国产精品国产a级| 成年人av电影| 91污在线观看| 亚洲五码中文字幕| 91精品欧美久久久久久动漫| 极品白嫩丰满美女无套| 久久精品国产第一区二区三区| 精品sm在线观看| 日本黄区免费视频观看| 粉嫩嫩av羞羞动漫久久久 | 97人妻精品一区二区免费| 韩国精品一区二区| 国产欧美一区二区在线| 加勒比婷婷色综合久久| 99久久免费视频.com| 亚洲一区在线看| 日韩丝袜美女视频| 色欲狠狠躁天天躁无码中文字幕 | 美女爆乳18禁www久久久久久 | 中文字幕av在线一区二区三区| 成人做爰视频网站| 99久久综合国产精品| 亚洲在线视频免费观看| 日韩欧美自拍偷拍| 免费看的黄色网| 成人国产亚洲欧美成人综合网| 夜夜精品浪潮av一区二区三区| 51精品久久久久久久蜜臀| 噜噜噜在线视频| 国产成人午夜电影网| 一区二区三区在线免费| 日韩一级免费一区| 长河落日免费高清观看| 杨幂一区二区国产精品| 日韩和欧美一区二区| 日本一区二区三区免费乱视频| 日本久久精品电影| 成人区人妻精品一区二| 精品一区二区三区蜜桃| 日韩久久一区二区| 91精品国产综合久久久久久久久久 | 中文字幕在线不卡一区二区三区| 欧洲另类一二三四区| 久久久久久国产精品无码| 成人成人成人在线视频| 日韩激情中文字幕| 国产精品美女久久久久aⅴ国产馆| 欧美三级欧美一级| 国产真人真事毛片视频| wwwxxxx在线观看| 精品一区二区三区日韩| 樱桃国产成人精品视频| 久久这里只有精品首页| 欧洲生活片亚洲生活在线观看| 国产精品久久免费观看| 人妻激情偷乱视频一区二区三区| 精一区二区三区| 亚洲综合一区二区| 国产丝袜在线精品| 56国语精品自产拍在线观看| 午夜爱爱毛片xxxx视频免费看| 毛片网站免费观看| 免费国偷自产拍精品视频|