如何在canvas里判断出鼠标在舞台中心的左右位置

查看:112
本文介绍了如何在canvas里判断出鼠标在舞台中心的左右位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这是代码里的两张图片

鼠标像在舞台中心左边往右走
鼠标像在舞台中心右边往左走
我自己写了一个简单的效果
必须鼠标一直动才会走
如何才能让他放在右边就走

<html>
  <head>
    <meta charset="UTF-8">
    <title>Endless Runner Game Demo</title>
    <style>
      body { background-color: #000000; }
      canvas { background-color: #222222; }
    </style>
  </head>
  <script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
  <body onload="init();">
  <div align="center" >
    <canvas id="game-canvas" width="512" height="384"></canvas>
  </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.0.0/pixi.min.js"></script>
   <script>
   
                function init() {
                    /*alert("init() successfully called.");*/
                     stage = new PIXI.Container();
                    renderer = PIXI.autoDetectRenderer(
                    512,
                    384,
                    {view:document.getElementById("game-canvas")}
                     );
                     
                     var farTexture = PIXI.Texture.fromImage("img/bg-far.png");
                     far = new PIXI.extras.TilingSprite(farTexture, 512, 256);
                      far.position.x = 0;
                      far.position.y = 0;
                      far.tilePosition.x = 0;
                      far.tilePosition.y = 0;
                      stage.addChild(far);
                      var midTexture = PIXI.Texture.fromImage("img/bg-mid.png");
                    mid = new PIXI.extras.TilingSprite(midTexture, 512, 256);
                    mid.position.x = 0;
                    mid.position.y = 128;
                    mid.tilePosition.x = 0;
                      mid.tilePosition.y = 0;
                    stage.addChild(mid);
                    stage.interactive=true;
                    /*stage.buttonMode=true;*/
                      stage.on('mousemove',shubiao);
                      
                      requestAnimationFrame(update);
                      
                }
                    function update() {
                          
                          
                        
                          renderer.render(stage);
                        
                          requestAnimationFrame(update);
                    }
                    
                    
                      function shubiao(ev){
                        var windosW=$(window).width();
                        
                        $(document).mousemove(function (e) {
                            x = windosW/2>=e.pageX;
                        });
                            if(x){
                            far.tilePosition.x += 1;
                              mid.tilePosition.x += 2;
                            }else{
                            far.tilePosition.x -= 1;
                              mid.tilePosition.x -= 2;
                            }
                            
                    }
  </script>
</body>
</html>

解决方案

<html>
<head>

<meta charset="UTF-8">
<title>Endless Runner Game Demo</title>
<style>
  body { background-color: #000000; }
  canvas { background-color: #222222; }
</style>

</head>
<script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
<body onload="init();">
<div align="center" >

<canvas id="game-canvas" width="512" height="384"></canvas>

</div>
<script src="https://cdnjs.cloudflare.com/...
<script>

               var x;
               var windosW=$(window).width();
                    
                    $("#game-canvas").mousemove(function (e) {
                        x = windosW/2>=e.pageX;
                    });
            function init() {
                /*alert("init() successfully called.");*/
                 stage = new PIXI.Container();
                renderer = PIXI.autoDetectRenderer(
                512,
                384,
                {view:document.getElementById("game-canvas")}
                 );
                 
                 var farTexture = PIXI.Texture.fromImage("img/bg-far.png");
                 far = new PIXI.extras.TilingSprite(farTexture, 512, 256);
                  far.position.x = 0;
                  far.position.y = 0;
                  far.tilePosition.x = 0;
                  far.tilePosition.y = 0;
                  stage.addChild(far);
                  var midTexture = PIXI.Texture.fromImage("img/bg-mid.png");
                mid = new PIXI.extras.TilingSprite(midTexture, 512, 256);
                mid.position.x = 0;
                mid.position.y = 128;
                mid.tilePosition.x = 0;
                  mid.tilePosition.y = 0;
                stage.addChild(mid);
                /*stage.interactive=true;*/
                /*stage.buttonMode=true;*/
                  /*stage.on('mousemove',shubiao);*/
                  
                  requestAnimationFrame(update);
                  
            }
                function update() {
                      if(x){
                        far.tilePosition.x += .5;
                          mid.tilePosition.x += .8;
                        }else{
                        far.tilePosition.x -= .5;
                          mid.tilePosition.x -= .8;
                        }
                      
                    
                      renderer.render(stage);
                    
                      requestAnimationFrame(update);
                }
                
                
                  

</script>
</body>
</html>

这篇关于如何在canvas里判断出鼠标在舞台中心的左右位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆