首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旋转实体以查看鼠标(Craftyjs)

旋转实体以查看鼠标(Craftyjs)
EN

Stack Overflow用户
提问于 2016-04-16 14:28:06
回答 1查看 223关注 0票数 2

我一直在尝试让我的播放器实体旋转到鼠标上,但是我无法触发MouseMove事件。

代码语言:javascript
复制
Crafty.e("2D, Mouse, Canvas, Color"
   .attr({ w:1000, h:1000, x:0, y:0 })
   .bind('MouseMove', function(e)
   {
         console.log("Mouse Pos:"+ e.x +","+e.y);
        //get hero
         var pos1 = {
           x: e.x,
           y: e.y
         }
         var pos2 = {
           x: player.x,
           y: player.y
         }
         player.rotation = 0;
         player.rotation = -Engine.degree(pos1, pos2);


     })

当我用单击或鼠标按下或任何其他鼠标事件替换MouseMove时,当该事件发生时,它会旋转到鼠标。但是,它从不调用mousemove函数。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-04-17 07:12:45

看看CraftyMouseFace,一个精巧的组件made by the community

此组件执行以下操作:

Crafty

  • 它找到给定的Sprite和鼠标位置之间的角度,并触发一个Crafty事件,该事件保存有关当前鼠标位置的信息以及以弧度和度数计算的角度。

  • 确定精灵朝向的方向。当在游戏屏幕上的任意位置按下或释放鼠标按钮时,

  • 会触发Crafty事件。

第一个特性听起来像是您需要的。

让我们在下面的代码片段中测试MouseMoved事件及其事件数据。

移动鼠标指针,请注意绿色矩形是如何旋转以面对指针的。

代码语言:javascript
复制
Crafty.init();

Crafty.e("2D, DOM, Color, MouseFace")
    .attr({x: 75, y: 75, w: 60, h: 60})
    .origin("center")
    .color('green')
    .bind("MouseMoved", function(data) {
        this.rotation = data.rad * 180 / Math.PI;
    });
代码语言:javascript
复制
<script src="https://github.com/craftyjs/Crafty/releases/download/0.7.1/crafty-min.js"></script>
<script src="https://cdn.rawgit.com/petarov/CraftyMouseFace/master/src/craftyMFace.js"></script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36660929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档