龟兔赛跑

 

简单的龟兔赛跑小游戏

基于js的事件监听处理,符合常理的文件结构,具体代码如下:

HTML文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>龟兔赛跑</title>
        <link rel="stylesheet" type="text/css" href="css/game_style.css"/>
        <script type="text/javascript" src="js/game.js" ></script>
    </head>
    <body><!--直接执行start函数:οnlοad="start()"-->
        <div id="map">
            <input type="button" value="开始游戏" οnclick="start()"/>
        </div>
        <img src="img/兔子.jpg" id="r"/>
        <img src="img/乌龟.jpg" id="w"/>
        <div id="result">
            兔子赢了!游戏结束!
        </div>
    </body>
</html>

 

CSS文件:

#map{
    width: 660px;
    height: 270px;
    position: absolute;
    top: 100px;
    left: 200px;
    background-image: url(../img/背景.jpg);
    text-align: center;
}

img{
    display: none;
    position: absolute;
    height: 32px;
    width: 32px;
}

#result{
    display: none;
    font-size: 50px;
    text-align: center;
    color: red;
}
 

 

JS文件:

var timerObj = -1;
var i = 0;
function start(){
    if(timerObj!=-1)
        clearInterval(timerObj);//如果点了好几次开始,必须清空之前的timerObj = setInterval(move,100)
        
    r = document.getElementById('r')
    w = document.getElementById('w')
    e = document.getElementById('result')
    r.style.left = '200px';
    r.style.top = '200px';
    w.style.left = '200px';
    w.style.top = '300px';
    
    e.style.display = 'none';
    r.style.display = 'block';
    w.style.display = 'block';
    
    timerObj = setInterval(move,100)//每0.1秒调用一次move函数
}

function move(){
    r = document.getElementById('r')
    w = document.getElementById('w')
    e = document.getElementById('result')
    rleft = r.style.left
    wleft = w.style.left
    
    rleft = Number.parseInt(rleft.split('px')[0])//将200px;变成200的数字,进行加减
    wleft = Number.parseInt(wleft.split('px')[0])
    
    rleft += 10;
    wleft += 5;
    
    r.style.left = rleft + 'px';
    w.style.left = wleft + 'px';
    
    array1 = ['img/兔子2.jpg','img/兔子3.jpg']
    if(i<array1.length){
        r.src = array1[i]
            i++
    }else{
        i = 0
        r.src = 'img/兔子.jpg';
    }
    array2 = ['img/乌龟2.jpg','img/乌龟3.jpg']
    if(i<array2.length){
        w.src = array2[i]
            i++
    }else{
        i = 0
        w.src = 'img/乌龟.jpg';
    }
    
    
    if (r.style.left >= '828px'){
        clearInterval(timerObj);
        timerObj = -1;
        e.style.display = 'block';
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值