JS实现简易的坦克发射(发射子弹)

JavaScript013

JS实现简易的坦克发射(发射子弹),第1张

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>键盘事件和组合键</title>

<style>

    *{

        margin: 0

        padding: 0

    }

    #div1{width:40px

        height:40px

        position:absolute

        background:url(tank.png)

        background-size:100%

        /* background:orange*/

        transform:rotate(0deg)

    }

    .pd{

        width:5px

        height:15px

        border-radius:50%

        position:absolute

        background:#f06

    }       

</style>

</head>

<body>

    <div id="div1" style="top:350pxleft:100pxposition: relative"></div>

</body>

</html>

<script>

    //要求 : 按住键盘的上下左右箭头  控制div的移动 

    // 按住 空格键  创建子弹 并发射子弹

    //37 39 32

    var div1 = document.getElementById("div1")

    document.onkeydown = function(eve){ //创建一个键盘事件

        var left = parseInt(div1.style.left)//获取div1距离页面左边的距离

        var top = parseInt(div1.style.top)//获取div1距离页面顶部的距离

        var e = eve||event

        if(e.keyCode==39){//点击方向右键向右移动,keyCode判断键盘按了哪个键

          div1.style.left=left+10+"px"

        }else if(e.keyCode==37){//左键向左移动

            div1.style.left=left-10+"px"

        }else if(e.keyCode==38){//向上移动

          div1.style.top=top-10+"px"

        }

        else if(e.keyCode==40){//向下移动

          div1.style.top=top+10+"px"

        }

        else if(e.keyCode == 32){

            var span =document.createElement("span")//创建一个span标签作为子弹

            document.body.insertBefore(span,div1)//将span标签插入body中的div前面

            var j = parseInt(div1.style.left)//获取div1距离页面左边的距离

            var k = parseInt(div1.style.top)-12//获取div1距离页面顶部的距离

            span.style.cssText="background:greendisplay:blockwidth:6pxheight:10pxborder-radius:50%position:absolutetop:kpxleft:j+18pxz-index:1"

            span.style.left = j+18+"px"//让span在div的中间位置出现

            span.style.top = k+"px"

            var i = k

            setInterval(function(){ //设置定时器每隔25ms,子弹做一次移动,每次移动10px

                // var a = parseInt(span.style.top)

                    i = i-10

                  span.style.top = i+"px"

                //    span.style.top = i+"px"

                  if(i<0){

                      span.remove()//当子弹超出屏幕,删除这个span节点

                  }

            },25)

        }

    }

</script>

你好,很高兴为你解答。

手机版我的世界红石有什么用 红石用法详解

 1.红石

它的作用就是传递信号(不是电流)

它的能量最高限制是15格

红石火把,拉杆,按钮,红石块,命令方块(setblock)均可启动

红石被激活后会发亮并冒烟,随信号强度减弱亮度也会减弱直至没有。

离我最近的那个红石没有信号。

在一般情况下,红石信号强度不会影响信号传递的速度。

2.红石火把

作用是给红石输入15格强度信号(如上图)

(当然不止这么点还有些东西留到进阶篇讲)

3.拉杆与按钮

输入15强度信号,拉杆只能手动关闭。

4.活塞与粘性活塞

可以通过红石信号进行推动物品,但是最多推12格,并且有许多东西推不动,是非实体方块(具体的进阶再讲)。

两种活塞都可以推出方块,但是普通活塞无法收回方块,粘性活塞可以。

5.红石块

红石火把的进化,唯一能被活塞推动且拥有红石信号的方块

可以直接给红石充能15格。

注意了把红石块摆在活塞前面是不会推动的如图

红石块可以激活他下面的红石如图

6.红石中继器

可以给被充能的红石15格信号(所以叫中继器)

延迟,默认的中继器是0.1秒,敲一下0.2,再是0.3,再是0.4,再敲变回0.1

(两个杆子之间越远延迟越长)

注意中继器能动的杆子是输入不动的是输出,千万别搞反了。

1.8的14w27a后中继器进行了更改,两个杆子越近延迟越长。

如图第一个是正确的,第二个是错的。

中继器可以防止被周围的信号干扰,因为只有一个输入端如图

周围的信号不会影响中继器

当中继器没有被充能而被旁边的中继器锁住的时候,

即使给予信号也不会被充能

当中继器被充能而又被旁边的中继器锁住后,即使断掉信号也有输出

7.四种压力板

石质压力板:只有生物(包括你)踩上去才发出15格信号

木质压力板:可以通过丢东西发出信号

铁质压力板(重质):无论丢多少东西,只发出1格信号。。。人踩上也是一格(1.7X)

金质压力板(轻质):每丢一个物品加一格信号(1.7X)

8.发射器与投掷器

发射器:发射出可发射的物品(1.5X)如TNT,药水,箭等

投掷器:投出物品(发射器的退化版)

手机版我的世界红石有什么用 红石用法详解

9.红石灯

有红石信号时会亮

10.拌线钩

必须要有线(蜘蛛丝)和两个拌线钩连接踩或者丢东西发出15格信号

空中也可以,信号发出于支撑拌线钩的方块

没错又是我最强灬神话,上次教了红石的基础知识,这一次要进一步深入。