• Math类之子弹跟随


    import flash.ui.Mouse;
    import flash.events.Event;
    import flash.display.MovieClip;

    var mouse:MOUSE = new MOUSE();
    stage.addChild(mouse); ;
    stage.addEventListener(Event.MOUSE_LEAVE, cursorHide);//MOUSE_LEAVE 事件来检测鼠标是否离开影片
    stage.addEventListener(MouseEvent.MOUSE_MOVE, cursorFollow);//当鼠标进入影片时MOUSE_MOVE事件来检测,因为MOUSE_MOVE事件只有在鼠标存在于影片范围内时触发
    Mouse.hide();

    function cursorHide(evt:Event):void
    {
    mouse.visible = false;
    }
    function cursorFollow(evt:MouseEvent):void
    {
    if (!mouse.visible)
    {
    mouse.visible = true;

    }
    mouse.x = mouseX;
    mouse.y = mouseY;
    //evt.updateAfterEvent();
    }

    //子弹的初始位置
    var bulletx:Number=275
    var bullety:Number=400
    //子弹运动速度,相当图8.37中的AB长度
    var speed:Number=5

    stage.addEventListener(MouseEvent.CLICK,shoot)
    function shoot(e:MouseEvent):void
    {
    //根据鼠标坐标和初始位置计算弧度,相当图8.35中的角BAC
    var radian:Number=getRadian(bulletx,bullety,this.mouseX,this.mouseY)
    //从库中创建子弹
    var bullet:Bullet=new Bullet()
    //初始化子弹位置
    bullet.x=bulletx
    bullet.y=bullety
    //根据余弦函数计算子弹的x速度,相当于计算图8.35中的AC
    bullet.spdx=Math.cos(radian)*speed
    //根据正弦函数计算子弹的y速度,相当于计算图8.35中的BC
    bullet.spdy=Math.sin(radian)*speed
    //注册enterFrame事件
    bullet.addEventListener(Event.ENTER_FRAME,bulletMove)
    e.target.addChild(bullet)
    }

    function bulletMove(e:Event):void
    {
    //获取子弹的引用
    var obj:* = e.target;
    //子弹的坐标加上速度,实现运动
    obj.x+=obj.spdx
    obj.y+=obj.spdy
    //如果显示实例不在舞台内
    if(obj.y<0||obj.x<0||obj.x>550||obj.y>400)
    {
    //移除enterFrame事件
    obj.removeEventListener(Event.ENTER_FRAME,bulletMove)
    //从显示列表删除
    stage.removeChild(obj)
    }
    }

    //计算弧度
    function getRadian(x1:Number,y1:Number,x2:Number,y2:Number):Number
    {
    var tx:Number=x2-x1
    var ty:Number=y2-y1
    var radian:Number = Math.atan2(ty, tx)
    return radian
    }

  • 相关阅读:
    作业20170928--2 单元测试
    作业20170928—1代码规范,结对要求
    第三周PSP
    20170922-3 功能测试作业
    第二周PSP
    采用c#实现功能1
    linux下搭建生成HLS所需的.ts和.m3u8文件
    android编译ffmpeg+x264
    ubuntu.sh: 113: ubuntu.sh: Syntax error: "(" unexpected
    解决:[WARNING] fpm_children_bury(), line 215: child 2736 (pool default) exited on signal 15 SIGTERM after 59.588363 seconds from start
  • 原文地址:https://www.cnblogs.com/yanshuoistutu/p/2757807.html
Copyright © 2020-2023  润新知