指尖大冒险、跳一跳升级版html5游戏全代码

简介: 指尖大冒险、跳一跳升级版html5游戏全代码

博主的话


  这是最后一个纯原生js代码编出来的游戏了。我连这个一共写了三个小游戏。写得越多,越发现自己用原生js写游
戏的不足之处。所以在这里立个flag,下次写的h5小游戏一定要是用游戏引擎写的。
  文件夹路径也展示给大家。

所以,大家有需要的话,下载地址:https://download.csdn.net/download/qq_43592352/12368533

文件目录


image.png

运行图片


20190520215346699.png

指尖大冒险.html


<html>
<head>
    <title>指尖大冒险</title>
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
    <script src="jquery-3.3.1.js" type="text/javascript"></script>
</head>
<body>
    <div id="container">
        <div id="con_left"></div>
        <div id="main">
            <div id="gameBox">
                <img id="hero" src="css/img/hero_left.png">
            </div>
        </div>
        <div id="con_right"></div>
    </div>
</body>
<script>
    function sleep(ms){//时间延迟函数
          return new Promise(resolve =>setTimeout(resolve,ms))
      }
    /******************************键盘事件***********************/
    var pressNum=0;var frontPressNum=0;
    $(document).keydown(function(event){
        if(event.which==39){
            $("#hero").attr("src","css/img/hero_right.png");
            moveRight();
            $("#hero").css({
                "margin-top":heroY+'px',
                "margin-left":heroX+'px'
            })
            allDown();
            deleteStair();addStair();background();check();
        }
        else if(event.which==37){
            $("#hero").attr("src","css/img/hero_left.png");
            moveLeft();
            $("#hero").css({
                "margin-top":heroY+'px',
                "margin-left":heroX+'px'
            })    
            allDown();deleteStair();addStair();background();check();
        }
        });
/*********************************封装函数*************************************/
var moveRightFlag=0;//全局变量
function moveRight(){
    moveRightFlag++;
    heroX++;var y=heroY-parseInt(61*Math.sin(moveRightFlag/60*Math.PI));
    $("#hero").css({
        "margin-top":y+'px',
        "margin-left":heroX+'px'
    })
    if(moveRightFlag<44)
    setTimeout("moveRight()",1);
    else {moveRightFlag=0;heroY-=45;heroX+=1;}
}
var moveLeftFlag=0;//全局变量
function moveLeft(){
    moveLeftFlag++;
    heroX--;var y=heroY-parseInt(61*Math.sin(moveLeftFlag/60*Math.PI));
    $("#hero").css({
        "margin-top":y+'px',
        "margin-left":heroX+'px'
    })
    if(moveLeftFlag<44)
    setTimeout("moveLeft()",1);
    else {moveLeftFlag=0;heroY-=45;heroX--;}
}
/********************************台阶类***************************/
var nowX=160,nowY=540,directionFlag,heroX=175,heroY=470;//全局变量
function Stair(x0,y0){
    this.x=x0;
    this.y=y0;
    var img=$(new Image());
    img.attr({
                'src':'css/img/stair.png',
                'class':'stair',
            });
    img.css({
                'margin-left':this.x+'px',
                'margin-top':this.y+'px',
            });
    $("#gameBox").append(img);
}
var ppp=new Stair(nowX,nowY);
for(var i=0;i<=6;i++)
{
    directionFlag=parseInt(Math.random()*2+1);
    if(directionFlag==1){
        nowX-=45;nowY-=45;
        ppp=new Stair(nowX,nowY);
    }
    else{
        nowX+=45;nowY-=45;
        ppp=new Stair(nowX,nowY);
    }
}
/********************************障碍物类***************************/
function StairOb(x0,y0){
    this.x=x0;
    this.y=y0;
    var img=$(new Image());
    img.attr('class','stairOb');
    img.css({
                'margin-left':this.x+'px',
                'margin-top':this.y-90+'px',
                'opacity':0
            });
    this.setImg1=async function(){
        img.attr('src','css/img/stairOb1.png');
        $("#gameBox").append(img);
        for(var i=1;i<10;i++){
        img.css({
            'opacity':i*0.1+0.1,
            'margin-top': this.y+i*10+'px'
        });
        await sleep(10);
        }
    }
    this.setImg2=async function(){
        img.attr('src','css/img/stairOb2.png');
        $("#gameBox").append(img);
        for(var i=1;i<10;i++){
        img.css({
            'opacity':i*0.1+0.1,
            'margin-top': this.y+i*10+'px'
        });
        await sleep(10);
        }
    }
    this.setImg3=async function(){
        img.attr('src','css/img/stairOb3.png');
        $("#gameBox").append(img);
        for(var i=1;i<10;i++){
        img.css({
            'opacity':i*0.1+0.1,
            'margin-top': this.y+i*10+'px'
        });
        await sleep(10);
        }
    }
    this.setImg4=async function(){
        img.attr('src','css/img/stairOb4.png');
        $("#gameBox").append(img);
        for(var i=1;i<10;i++){
        img.css({
            'opacity':i*0.1+0.1,
            'margin-top': this.y+i*10+'px'
        });
        await sleep(10);
        }
    }
    this.setImg5=async function(){
        img.attr('src','css/img/stairOb5.png');
        $("#gameBox").append(img);
        for(var i=1;i<10;i++){
        img.css({
            'opacity':i*0.1+0.1,
            'margin-top': this.y+i*10+'px'
        });
        await sleep(10);
        }
    }
}
var qqq=new StairOb(nowX+80,nowY-35);qqq.setImg2();
/*****************************实现整体下移功能*****************************************/
function allDown(){
    heroY+=45;
    $("#hero").css("margin-top",heroY+'px');
    var allStairs=$(".stair");
    for(var i=0;i<allStairs.length;i++){
        var top=parseInt(allStairs.eq(i).css("margin-top"));
        allStairs.eq(i).css("margin-top",top+45+'px');
    }
    var allStairsOb=$(".stairOb");
    for(var i=0;i<allStairsOb.length;i++){
        var top=parseInt(allStairsOb.eq(i).css("margin-top"));
        allStairsOb.eq(i).css("margin-top",top+45+'px');
    }
}
/***************************台阶的添加与删除********************************************/
async function deleteStair(){
    var allStairs=$(".stair");
    var dom=allStairs.eq(0);
    var top=parseInt(dom.css("margin-top"));
    for(var i=0;i<9;i++){
        dom.css({
            'opacity':1-i*0.1,
            'margin-top': top+i*5+'px'
        });
        await sleep(10);
    }
    dom.attr("display","none");
    dom.remove();
    var allStairsOb=$(".stairOb");
    var domOb=allStairsOb.eq(0);
    var topOb=parseInt(domOb.css("margin-top"));
    if(topOb>540){
        for(var i=0;i<9;i++){
        domOb.css({
            'opacity':1-i*0.1,
            'margin-top': top+i*3+'px'
        });
        await sleep(10);
        }
        domOb.attr("display","none");
        domOb.remove();
    }
}
async function addStair(){
    directionFlag=parseInt(Math.random()*2+1);
    if(directionFlag==1){
        nowX-=45;
        ppp=new Stair(nowX,nowY-90);
        var allStairs=$(".stair");
        var dom=allStairs.eq(allStairs.length-1);
        var top=parseInt(dom.css("margin-top"));
        for(var i=1;i<10;i++){
        dom.css({
            'opacity':i*0.1+0.1,
            'margin-top': top+i*10+'px'
        });
        await sleep(10);
        }
        addStairOb(1,nowX,nowY);
    }
    else{
        nowX+=45;
        ppp=new Stair(nowX,nowY-90);
        var allStairs=$(".stair");
        var dom=allStairs.eq(allStairs.length-1);
        var top=parseInt(dom.css("margin-top"));
        for(var i=1;i<10;i++){
            console.log(i);
        dom.css({
            'opacity':i*0.1+0.1,
            'margin-top': top+i*10+'px'
        });
        await sleep(10);
        }
        addStairOb(2,nowX,nowY);
    }
}
function addStairOb(flag,x,y){
    var isflag=parseInt(Math.random()*2+1);
    if(isflag==1){
        var styleflag=parseInt(Math.random()*5+1);
        if(flag==1) qqq=new StairOb(x-80,y-35);
        else qqq=new StairOb(x+80,y-35);
        if(styleflag==1) qqq.setImg1();
        else if(styleflag==2) qqq.setImg2();
        else if(styleflag==3) qqq.setImg3();
        else if(styleflag==4) qqq.setImg4();
        else qqq.setImg5();
    }
}
/*********************封装两侧的背景**************************************/
var bgHeight=0,bgFlag=0;
function background(){
        bgHeight+=2;bgFlag++;
        $("#con_left").css({
            'background':'url("css/img/leaf_left.png") 0px '+bgHeight+'px'+' repeat-y',
            "background-size": "100px 1200px"
        });
        $("#con_right").css({
            'background':'url("css/img/leaf_right.png") repeat-y  0px '+bgHeight+'px',
            "background-size": "100px 1200px"
        });
        if(bgHeight>=1200) bgHeight=0;//防止bgHeight过大
        var t=setTimeout('background()',10);
        if(bgFlag>=50){
            clearTimeout(t);
            bgFlag=0;
        }
}
/**********************************判断人物死亡****************************/
function check(){
    var allStairs=$(".stair");
    var dom=allStairs.eq(0);
    var top=parseInt(dom.css("margin-top"));
    var left=parseInt(dom.css("margin-left"));
    var hx=heroX+40,hy=heroY+80;
    if(!(hx<=left+75&&hx>=left&&hy<=top+60&&hy>=top)) alert("失败!");
}
</script>
</html>

style.css


*{
   margin: 0px;
   padding: 0px;
   /*无法选择图片*/
   -moz-user-select: none; 
   -webkit-user-select: none; 
   -ms-user-select: none; 
   -khtml-user-select: none; 
   user-select: none;
}
#container{
   width: 100%;
   height: 730px;
   background: rgb(0, 22, 5);
}
#con_left{
   height: 100%;
   width: 10%;
   background: url("img/leaf_left.png") repeat-y;
   background-size: 100px 1200px;
   float: left;
}
#main{
   height: 100%;
   width: 79%;
   float: left;
}
#con_right{
   height: 100%;
   width: 100px;
   float: right;
   background: url("img/leaf_right.png") right repeat-y;
   background-size: 100px 1200px;
}
/**************************gameBox***********************/
#gameBox{
   height: 600px;
   width: 400px;
   margin: 50px 0 0 400px;
}
#hero{
   height: 100px;
   width: 50px;
   margin: 470px 0 0 175px;
   z-index: 10000;
   position: absolute;
}
.stair{
   height: 60px;
   width: 75px;
   position: absolute;
}
.stairOb{
   position: absolute;
   width: 75px;
   height: 90px;
   z-index: 5000;
}

进行下一个游戏的开发!


飞机大战h5小游戏开发

是男人就下一百层”h5游戏全网最详细教学、全代码,js操作

2019-5-20留

相关文章
|
6天前
HTML在线扫雷游戏网页源码
HTML在线扫雷游戏网页源码是一款基于HTML+CSS+JavaScript开发的在线扫雷小游戏单页源码,为用户提供了一个无需安装即可在浏览器中直接玩的扫雷游戏。该游戏的源码不仅包含了完整的游戏逻辑,还具备丰富的界面设计和用户交互功能,使得玩家能够轻松上手并享受扫雷带来的乐趣。
38 22
|
5月前
|
数据采集 移动开发 前端开发
HTML代码的革命:语义化标签的魅力,让你的网页结构焕然一新!
【8月更文挑战第26天】本文探讨了Web前端开发中的语义化标签概念及其重要性。语义化标签通过使用具有明确含义的HTML标签来构建页面结构,提升了网页的可访问性及搜索引擎优化效果,并增强了代码的可读性和维护性。文章还讨论了实际开发中遇到的问题及未来发展趋势。
71 0
|
2月前
html实现的破碎拼接文字动画特效代码
html实现的破碎拼接文字动画特效代码是一段会自动产生文字依次破碎再拼接的效果,非常的炫。欢迎对此段代码感兴趣的朋友前来下载使用。
35 1
|
2月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
134 6
|
3月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
716 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
|
3月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
138 1
|
4月前
|
移动开发 JavaScript 数据管理
HTML5 拖放在游戏中的应用
HTML5的拖放功能在游戏开发中广泛应用,尤其在创建交互式网页游戏时。它支持多种场景,如拖动角色或物品、选择和装备物品、拼图或配对游戏以及自定义界面布局。通过简单的HTML和JavaScript代码,可实现流畅的拖放交互,并提供视觉反馈,增强用户体验。此外,还需考虑设备兼容性和数据管理,确保游戏在不同设备和浏览器上都能良好运行。总之,HTML5拖放功能使网页游戏更生动有趣。
|
4月前
网站维护更新简易单页404页html代码
一个简约风格的单页html页面,可用于网站维护中或更新网站时挂个首页使用,如果不喜欢现在的颜色请F12修改设置既可。
120 1
网站维护更新简易单页404页html代码
|
4月前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
115 12
|
4月前
|
前端开发 JavaScript
用最少的代码实现一个HTML可交互表格
该HTML页面展示了一个可交互的表格,用户可以通过点击表格行来高亮显示所选行。使用了基本的`&lt;table&gt;`结构,并通过CSS设置了表格样式及行悬停效果。JavaScript函数`toggleSelect`实现了行选中的切换功能。