jQuery(function ($){

var playGround = {

x : 600,

y : 360

}

var step = 20;

var score = 0;

var timer;

var bodyArry = [];

var $head = $("#head");

var $gameBox = $("#gameBox");

var $egg;

var typeY = 0;

var typeX = 1;

// 绑定

$(document).bind("keydown",function(evt){

console.log(evt.keyCode);

move(evt.keyCode);

});

$("#reStart").bind("click",function(){

reStart();

})

function reStart(){

window.location.reload();

}

function addEgg(){

eggX = Math.round(Math.random() * (playGround.x/20-1)) *

step;

eggY = Math.round(Math.random() * (playGround.y/20-1)) *

step;

addBody(eggX, eggY, "egg");

}

function eatEgg(){

// 吃蛋,

if($head.css("top") == $egg.css("top")

&& $head.css("left") == $egg.css("left") ){

// 转化为身体

$egg.removeClass("egg").addClass("snakeBody");

bodyArry.push($egg);

// 加分

$("#score").html(++score);

// 加蛋

addEgg();

}

}

function initGame(){

addBody(180,200);

addBody(160,200);

addEgg();

snakeRun(true);

}

function move(key){

if(key == 38){ //上

typeX = 0;

typeY = -1;

}else if(key == 39){ //右

typeX = 1;

typeY = 0;

}else if(key == 40){ //下

typeX = 0;

typeY = 1;

}else if(key == 37){ //左

typeX = -1;

typeY = 0;

}else if(key == 32){ //左

snakeRun(false);

}else if(key == 82 || key ==13){ //左

snakeRun(true);

}else{

if(key){

return;

}

}

// debugger;

var moveY = typeY * step;

var moveX = typeX * step;

// 保存头部走动前位置

var headOldY = +$head.css("top").split("px")[0];

var headOldX = +$head.css("left").split("px")[0];

// 头部走动一步

$head.css("top","+="+moveY+"px");

$head.css("left","+="+moveX+"px");

// 尾部移动到原来头的位置

bodyArry[bodyArry.length-1].css("top",headOldY+"px");

bodyArry[bodyArry.length-1].css("left",headOldX+"px");

if(bodyArry.length>1){

bodyArry.unshift(bodyArry[bodyArry.length-1]);

bodyArry.pop();

}

// 判断游戏是否结束

if(gameOver()){

clearInterval(timer);

adAlert("gameOver!!!", function(){

reStart();

});

}

// 是否吃蛋

eatEgg();

}

function gameOver (){

// 1.撞墙

var headY = +$head.css("top").split("px")[0];

var headX = +$head.css("left").split("px")[0];

console.log("x:"+headX+",y:"+headY);

if(headY < 0 || headY > playGround.y-1 || headX < 0

|| headX > playGround.x-1){

return true;

}

// 2.撞自己

for (var i = 0; i < bodyArry.length; i++) {

if( $head.css("top") == bodyArry[i].css("top") &&

$head.css("left") == bodyArry[i].css("left")){

return true;

};

};

return false;

}

var n = 1;

function addBody(x, y, type){

var type = type || "snakeBody";

var html = " ";

n++;

var $snakeBody = $(html);

$snakeBody.css("top",y+"px");

$snakeBody.css("left",x+"px");

$gameBox.append($snakeBody);

if(type != "egg"){

bodyArry.push($snakeBody);

}else{

$egg = $snakeBody;

}

}

function snakeRun(bool){

if(bool){

timer = setInterval(function(){

move();

},400);

}else{

clearInterval(timer);

}

}

function myAlert(str , fun){

$("#myAlert-content").html(str);

$("#myAlert-bk").show();

$("#myAlert").show();

$("#myAlert-btn-ok").unbind("click").bind("click",function(){

$("#myAlert-bk").hide();

$("#myAlert").hide();

// 重启游戏

if(typeof fun == "function")fun();

})

}

adAlert("你准备好了吗?",function(){

initGame();

})

})

对话框

html代码打猎小游戏,html贪吃蛇小游戏课件-附源代码相关推荐

  1. 贪吃蛇大作战代码java,贪吃蛇游戏,贪吃蛇java游戏代码讲解

    贪吃蛇游戏,贪吃蛇java游戏代码讲解 来源:互联网 作者:佚名 时间:2020-06-06 贪吃蛇源代码.txt这世界上除了我谁都没资格陪在你身边. 听着,我允许你喜欢我.除了白头偕老,我们... ...

  2. 贪吃蛇c加加代码_C语言实现的贪吃蛇小游戏

    学习完C语言基础后,当然要做点小东西来巩固一下知识啦~~,之前做的学生信息管理系统是比较小的,搞定之后决定还是做个贪吃蛇的小游戏,这是学习C语言的经典入门小程序,下面简单地说下用C语言开发这个需要用到 ...

  3. python写的贪吃蛇小游戏_Python贪吃蛇小游戏

    贪吃蛇 1. 导入游戏库 # 1.导入库 import pgzrun import random 2.游戏初始化 # 2.初始化 # 窗口大小 WIDTH = 600 HEIGHT = 480 # 贪 ...

  4. 原生JavaScript小项目之贪吃蛇小游戏(附源代码)

    公开课链接渡一教育贪吃蛇连接 <body><div class="content"><div class="btn startBtn&quo ...

  5. 基于STL实现自动贪心寻路算法的贪吃蛇小游戏

    基于STL实现自动贪心寻路算法的贪吃蛇小游戏 写贪吃蛇小游戏的想法来自CometOJ-Contest#13的B题,当时用STL双端队列维护蛇身的时候觉得非常方便,现在用EasyX图形库实现一下. 运行 ...

  6. python双人格斗游戏代码_Python:游戏:贪吃蛇

    一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏截图: 玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 ↑↓←→方向键 或 WSAD 键:控制移动方向. 食物分红.绿.蓝三种 ...

  7. Python 游戏:贪吃蛇

    系列文章地址 Python 游戏:贪吃蛇 Python 游戏:扫雷 Python 游戏:300行代码实现俄罗斯方块 Python 游戏:五子棋之人机对战 文章目录 系列文章地址 一.游戏介绍 二.游戏 ...

  8. 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!

    作者 | 周萝卜 来源 | 萝卜大杂烩 相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了. 用到的 Pygame 函数 贪吃蛇小游戏用到的函数 功能 ...

  9. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

最新文章

  1. python怎么画条形图-python绘制条形图方法代码详解
  2. Maven将中央仓库修改为阿里云的仓库地址
  3. LeetCode MySQL 1159. 市场分析 II(rank+over)
  4. win7如何关闭密码保护共享
  5. android action bar 风格,自定义ActionBar的风格
  6. html页面锁屏,锁屏页面.html
  7. OpenShift Security (1) - 红帽多集群安全管理 RHACS 的主要功能和技术架构
  8. ioc spring技术手册学习
  9. Linux查看占用mem的进程脚本
  10. C++_实现一个简单的智能指针shared_ptr
  11. jupyterlab中使用conda虚拟环境
  12. 【韩顺平 零基础30天学会Java】(第三阶段)(自用)
  13. 很简单的源码剖析-SpringBoot内嵌Tomcat原理
  14. 【阮一峰ES6入门教程学习笔记】letconst
  15. opengl光照效果之点光源
  16. CTF 内涵的软件 stage1
  17. 关于 mysql数据库“ERROR 1118 (42000): Row size too large.“ 的解决方法
  18. java 四舍六入五成双_显示格式的四舍六入五成双
  19. 基于模糊控制的十字路口交通红绿灯控制matlab仿真
  20. vue打开外部页面_vue项目中嵌套外部网页

热门文章

  1. 蓝桥杯青少年创意编程C++组赛前集训教程包
  2. 时间轮(TimingWheel)
  3. mysql远程3306不通_mysql服务器3306端口不能远程连接的解决
  4. Audified U73b 复古压缩器评测:带来复古温暖的色彩
  5. Mac锁屏 设置快捷键
  6. 知乎APP 产品分析
  7. 连获国际大奖创下史上第一,这家耳机品牌凭什么与众不同?
  8. 02-AD软件基本使用第二讲(器件介绍)
  9. 2018技能高考计算机试题答案,计算机技能高考模拟试题一.doc
  10. 一个不错的下载年限网站