html5贪吃蛇游戏使用63行代码完美实现


Posted in HTML / CSS onJune 25, 2013

以前也很少关注html5,感觉选择html已经慢慢成为趋势,想了解下。就找了个游戏学习了,写完这个游戏感觉html5和js结合很紧密,如果js不是特别好。估计需要先补习下js,这个只是个人的建议,不一定准确。还有一个就是,思维和逻辑要特别清楚,不然写游戏可能很痛苦。

贪吃蛇,最主要的功能点: 1,蛇的移动 2,改变蛇的方向 3,放置食物 4,增加舍身 5,怎么挂的。

第一次写游戏,第一次写html5 感觉还是很吃力的。写完了,给大家分享下。互相交流.............不懂的或者有建议的,可以留言给我。。。代码很短,就60行。

不过这个是个半成品,等写完成了。再更新下

复制代码
代码如下:

<!DOCTYPE HTML>
<html>
<body>
<canvas id="myCanvas" width="400" height="400" style="border:1px solid #c3c3c3;"></canvas>
<script type="text/javascript">
var c=document.getElementById("myCanvas");
var time = 160 ; //蛇的速度
var cxt=c.getContext("2d");
var x = y = 8;
var a = 0; //食物坐标
var t = 20; //舍身长
var map = []; //记录蛇运行路径
var size = 8; //蛇身单元大小
var direction = 2; // 1 向上 2 向右 0 左 3下
interval = window.setInterval(set_game_speed, time); // 移动蛇
function set_game_speed(){ // 移动蛇
switch(direction){
case 1:y = y-size;break;
case 2:x = x+size;break;
case 0:x = x-size;break;
case 3:y = y+size;break;
}
if(x>400 || y>400 || x<0 || y<0){
alert("你挂了,继续努力吧!失败原因:碰壁了.....");window.location.reload();
}
for(var i=0;i<map.length;i++){
if( parseInt(map[i].x)==x && parseInt(map[i].y)==y){
alert("你挂了,继续努力吧!失败原因:撞到自己了.....");window.location.reload();
}
}
if (map.length>t) { //保持舍身长度
var cl = map.shift(); //删除数组第一项,并且返回原元素
cxt.clearRect(cl['x'], cl['y'], size, size);
};
map.push({'x':x,'y':y}); //将数据添加到原数组尾部
cxt.fillStyle = "#006699";//内部填充颜色
cxt.strokeStyle = "#006699";//边框颜色
cxt.fillRect(x, y, size, size);//绘制矩形
if((a*8)==x && (a*8)==y){ //吃食物
rand_frog();t++;
}
}
document.onkeydown = function(e) { //改变蛇方向
var code = e.keyCode - 37;
switch(code){
case 1 : direction = 1;break;//上
case 2 : direction = 2;break;//右
case 3 : direction = 3;break;//下
case 0 : direction = 0;break;//左
}
}
// 随机放置食物
function rand_frog(){
a = Math.ceil(Math.random()*50);
cxt.fillStyle = "#000000";//内部填充颜色
cxt.strokeStyle = "#000000";//边框颜色
cxt.fillRect(a*8, a*8, 8, 8);//绘制矩形
}
// 随机放置食物
rand_frog();
</script>
</body>
</html>
HTML / CSS 相关文章推荐
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
Jan 06 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
May 06 HTML / CSS
详解CSS3实现响应式手风琴效果
Jun 10 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
Nov 05 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
Oct 17 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
May 09 HTML / CSS
HTML5中5个简单实用的API
Apr 28 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
Feb 22 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
Dec 14 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
Aug 19 HTML / CSS
HTML页面中使两个div并排显示的实现
May 15 HTML / CSS
纯CSS打字动画的实现示例
Aug 05 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
Jun 24 #HTML / CSS
html5 offlline 缓存使用示例
Jun 24 #HTML / CSS
html5 worker 实例(二) 图片变换效果
Jun 24 #HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 #HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
Jun 20 #HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 #HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 #HTML / CSS
You might like
杏林同学录(四)
2006/10/09 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
Javascript中神奇的this
2016/01/20 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
社会治安综合治理管理责任书
2014/04/16 职场文书
优秀教师演讲稿
2014/05/06 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
海洋科学专业求职信
2014/08/10 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL