egret摇杆事件

实现为摇杆触摸后 角色移动
首先 var kong:boolean=false;
用这个来判断是否移动角色

 nei.addEventListener(egret.TouchEvent.TOUCH_MOVE,onnei, this);

nei为摇杆中心可以动的小球
小球被点击后执行onnei事件

function onnei(e: egret.TouchEvent):void{
 kong=true;
   if(e.stageX<=440||e.stageY<=240){//fang zhi bie de di fang di ji hou tong yang cao zuo yao gan
var xz=e.stageX;
var xy=e.stageY;
//console.log("xxxxxx"+xz+"yyyyyyyyyyyy"+xy);
nei.x=e.stageX-360;//rang zuo biao hui dao yuan xin
    nei.y=e.stageY-180;
    var xx=nei.x-shpwai.x;
    var zx=(xx)/100;
 ang.run(e.stageY,180, e.stageX,360);//=Math.atan2(nei.y-shpwai.y,nei.x-shpwai.x);
   p2.x=nei.x+360;
    p2.y=nei.y+180;
    p1.x=360;
    p1.y=180;
   
   // console.log(180-angle6);
   console.log(sky.x+"sky.y"+sky.y);
  // while(kong==true){
cont6();//}
    //
var dist = egret.Point.distance(p1, p2);


    /
    
    //下面的是用来算小球的位置  而不是角色位置
   
 //console.log(dist);
   if(dist<=(100-40)){//e.stageY-nei.y>100){
    
       var dx:number=nei.x-360;//xian zai de dian dao yuan xin de x ju li
        var dy:number=nei.y-shpwai.y;//xian zai de dian dao yuan xin de y ju li
        var dixy=Math.atan2(dy,dx);// qiu de shi shang mian x y de jia jiao
        var dd=180*dixy/Math.PI;//jiang qiu de jiao du zhuan huan wei hu du
       var cc= Math.cos(dd*Math.PI/180)*6;
        console.log(cc+"//");
        console.log(nei.x+".....................");
        nei.x=nei.x;//如果在圆环内  小球的坐标等于鼠标当前坐标-小球初始坐标x

      nei.y=nei.y;//如果在圆环内 小球的坐标等于鼠标当前坐标-小秋初始坐标y
 
    }
   else{
       // this.ball.x = Math.cos(angle)*(this.circleRadius - this.ballRadius) + this.centerX;
        nei.x=Math.cos(ang.jieguo)*(100-40);
     nei.y=Math.sin(ang.jieguo)*(100-40);
      //  myScroller.viewport.scrollV = Math.sin(angle6)*(100-nei.y)+180+nei.y*10//纵向滚动的位置
          //  myScroller.viewport.scrollH  =Math.cos(angle6)*(100-nei.x)+360+nei.x*10;//横向滚动的位置
    }
    
    
    
 
   }

其中将kong设置为true并开启了事件cont6

  function cont6(){ 
    if(kong==true){
    console.log(jiaodu);
    // this.removeChild(myScroller);
    

    ///
    ///
    //想让小秋移动 需要sin cos角度 乘速度 再加小球x y 
    //想让小球不停移动需要加个定时器
     sky.x=Math.cos(ang.jieguo)*10+sky.x;
        sky.y=Math.sin(ang.jieguo)*10+sky.y;//Math.cos(ang.jieguo)*10

         myScroller.viewport.scrollV =myScroller.viewport.scrollV+Math.sin(ang.jieguo)*10; //纵向滚动的位置
            myScroller.viewport.scrollH  =Math.cos(ang.jieguo)*10+myScroller.viewport.scrollH
       // enemy.x =enemy.x+6; //纵向滚动的位置
     //   this.addChild(myScroller);
  //  timer.start();
}

用leavenei监听离开摇杆 将kong设置为false

nei.stage.addEventListener(egret.TouchEvent.TOUCH_END,leavenei, this);

下面是完整代码

   var shpwai:egret.Shape = new egret.Shape();
    
    //shpwai.x = 460;
      //     shpwai.y = 160;
            shpwai.graphics.beginFill(  0x00ff00 );
       
            shpwai.graphics.drawCircle( 360, 180, 100 );
            shpwai.graphics.endFill();
            this.addChild( shpwai );
    
     var nei:egret.Shape = new egret.Shape();
        //   shp.x = 460;
        //   shp.y = 160;
              var neix=360;
              var neiy=180
            nei.graphics.beginFill( 0xff0000);
            nei.graphics.drawCircle( neix, neiy, 40 );
            nei.graphics.endFill();
            nei.touchEnabled=true;
            this.addChild( nei );
    
    //var angle6:number;
    
    nei.addEventListener(egret.TouchEvent.TOUCH_MOVE,onnei, this);
    nei.stage.addEventListener(egret.TouchEvent.TOUCH_END,leavenei, this);
    function leavenei(){
        //timer.stop();
        kong=false;
    }
    //nei.stage.addEventListener(egret.TouchEvent.TOUCH_MOVE,onnei, this);
    var p1:egret.Point=new egret.Point();
    var p2:egret.Point=new egret.Point();
    
    var timer:egret.Timer=new egret.Timer(1,0);
          //  timer.addEventListener(egret.TimerEvent.TIMER,cont6,this);
     var jiaodu=180-ang.jieguo;
    function cont6(){ 
        if(kong==true){
        console.log(jiaodu);
        // this.removeChild(myScroller);
        
    
        ///
        ///
        //想让小秋移动 需要sin cos角度 乘速度 再加小球x y 
        //想让小球不停移动需要加个定时器
         sky.x=Math.cos(ang.jieguo)*10+sky.x;
            sky.y=Math.sin(ang.jieguo)*10+sky.y;//Math.cos(ang.jieguo)*10
    
             myScroller.viewport.scrollV =myScroller.viewport.scrollV+Math.sin(ang.jieguo)*10; //纵向滚动的位置
                myScroller.viewport.scrollH  =Math.cos(ang.jieguo)*10+myScroller.viewport.scrollH
           // enemy.x =enemy.x+6; //纵向滚动的位置
         //   this.addChild(myScroller);
      //  timer.start();
    }
    }
    //var angle:number = Math.atan2(e.stageY - 180, e.stageX - 360);
       // console.log(angle+"666666666666666666666");
     //var dist=egret.Point.distance(p1,p2);
     
    function onnei(e: egret.TouchEvent):void{
     kong=true;
       if(e.stageX<=440||e.stageY<=240){//fang zhi bie de di fang di ji hou tong yang cao zuo yao gan
    var xz=e.stageX;
    var xy=e.stageY;
    //console.log("xxxxxx"+xz+"yyyyyyyyyyyy"+xy);
    nei.x=e.stageX-360;//rang zuo biao hui dao yuan xin
        nei.y=e.stageY-180;
        var xx=nei.x-shpwai.x;
        var zx=(xx)/100;
     ang.run(e.stageY,180, e.stageX,360);//=Math.atan2(nei.y-shpwai.y,nei.x-shpwai.x);
       p2.x=nei.x+360;
        p2.y=nei.y+180;
        p1.x=360;
        p1.y=180;
       
       // console.log(180-angle6);
       console.log(sky.x+"sky.y"+sky.y);
      // while(kong==true){
    cont6();//}
        //
    var dist = egret.Point.distance(p1, p2);
    
    
        /
        
        //下面的是用来算小球的位置  而不是角色位置
       
     //console.log(dist);
       if(dist<=(100-40)){//e.stageY-nei.y>100){
        
           var dx:number=nei.x-360;//xian zai de dian dao yuan xin de x ju li
            var dy:number=nei.y-shpwai.y;//xian zai de dian dao yuan xin de y ju li
            var dixy=Math.atan2(dy,dx);// qiu de shi shang mian x y de jia jiao
            var dd=180*dixy/Math.PI;//jiang qiu de jiao du zhuan huan wei hu du
           var cc= Math.cos(dd*Math.PI/180)*6;
            console.log(cc+"//");
            console.log(nei.x+".....................");
            nei.x=nei.x;//如果在圆环内  小球的坐标等于鼠标当前坐标-小球初始坐标x
    
          nei.y=nei.y;//如果在圆环内 小球的坐标等于鼠标当前坐标-小秋初始坐标y
     
        }
       else{
           // this.ball.x = Math.cos(angle)*(this.circleRadius - this.ballRadius) + this.centerX;
            nei.x=Math.cos(ang.jieguo)*(100-40);
         nei.y=Math.sin(ang.jieguo)*(100-40);
          //  myScroller.viewport.scrollV = Math.sin(angle6)*(100-nei.y)+180+nei.y*10//纵向滚动的位置
              //  myScroller.viewport.scrollH  =Math.cos(angle6)*(100-nei.x)+360+nei.x*10;//横向滚动的位置
        }
        
        
        
     
       }
    
    }
             //
             /
               var xia:egret.Shape = new egret.Shape; 
            xia.graphics.beginFill( 16033 );
             xia.graphics.drawRect( 80, 540, 60,60 ); 
            xia.graphics.endFill(); 
            xia.touchEnabled=true;
            xia.addEventListener(egret.TouchEvent.TOUCH_TAP,bxia,this);
             this.addChild(xia);//将bg添加到舞台上
             function bxia(){
                 sky.y=sky.y-10;
             }
            /
            
               //  sky.texture=RES.getRes("hk1_png");
               //   console.log("cc");
                var zuo:egret.Shape = new egret.Shape; 
            zuo.graphics.beginFill( 16033 );
             zuo.graphics.drawRect( 6,500, 60, 60 ); 
            zuo.graphics.endFill(); 
            zuo.touchEnabled=true;
            zuo.addEventListener(egret.TouchEvent.TOUCH_TAP,bzuo,this);
             this.addChild(zuo);//将bg添加到舞台上
             function bzuo(){
                 sky.x=sky.x+10;
             }
           
            function byou(){
                sky.x=sky.x-10;
            }
           
           ///
           var button6:egret.Shape = new egret.Shape; 
            button6.graphics.beginFill( 16033 );
             button6.graphics.drawRect( 260, 560, 60, 60 ); 
            button6.graphics.endFill(); 
            button6.touchEnabled=true;
            button6.addEventListener(egret.TouchEvent.TOUCH_TAP,button,this);
             this.addChild(button6);//将bg添加到舞台上
            function button(){
                  
                 sky.texture=RES.getRes("hk1_png");
                  console.log("cc");
                  /
                  /
                  //tian jia dong hua
                  var js:string="lp_json";
                  var da:string="6_png";
         
            }
            
    
    
        
    
    
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值