如何将实体移动到鼠标位置并向其旋转

Ylo.Fmedia

我在读文章如何使飞船跟随光标使用CreateJS TUTS +,我想知道我怎样才能使朝鼠标位置的实体举措,但是它旋转得面对的问题。

这是没有旋转和代码的示例小提琴

var canvas = document.getElementById("Canvas");
var ship;
var stage;
var assets;
var loader;
var serverString = "http://source.tutsplus.com/gamedev/authors/JamesTyner/SmoothMoves/";
var stageHeight = 600;
var stageWidth = 600;
var shipHeight = 64;
var shipWidth = 64;
var easingAmount = 0.15;
var text;
stage = new createjs.Stage(canvas);
assets = [];
manifest = [{
    src: serverString + "ship.png",
    id: "character"
}];

loader = new createjs.LoadQueue(false);
loader.onComplete = handleComplete;
loader.onFileLoad = handleFileLoad;
loader.loadManifest(manifest);

function handleFileLoad(event) {
    var id = event.item.id;
    var result = loader.getResult(id);
    ship = new createjs.Bitmap(result);
    ship.x = (stageWidth / 2) - shipWidth;
    ship.y = stageHeight - shipHeight;
    ship.regX = shipWidth/2;
    ship.regY = shipHeight/2;
}

function handleComplete() {
    stage.addChild(ship);
    text = new createjs.Text("Click To Activate", "20px Arial", "#000000");
    text.x = 200;
    text.y = stageHeight / 2;
    stage.addChild(text);
    stage.update();
}

stage.onMouseDown = function () {
    stage.removeChild(text);
    createjs.Ticker.addEventListener("tick", tick);
};

function tick(event) {
   var xDistance = stage.getStage().mouseX - ship.x;
   var yDistance = stage.getStage().mouseY - ship.y;
   var distance = Math.sqrt(xDistance * xDistance + yDistance * yDistance);
    if (distance > 1) {
        ship.x += xDistance * easingAmount;
        ship.y += yDistance * easingAmount;
    }
    stage.update();
}

谢谢你们

半过去

首先计算船与鼠标指针之间的角度(以度为单位):

var mousePointerPosition = {
        x: stage.getStage().mouseX,
        y: stage.getStage().mouseY
    };

var spaceShipPosition = {
        x: ship.x,
        y: ship.y
    };

var angle = Math.atan2(
        spaceShipPosition.y - mousePointerPosition.y,
        spaceShipPosition.x - mousePointerPosition.x
    ) * 180 / Math.PI;

然后旋转飞船:

ship.rotation = ( angle > 180 ? -angle : angle ) + 90;

如果angle超过180,则将角度反转以使船转向另一个方向。我还增加+ 90了角度,因为船相对于鼠标位置旋转了90度。

Js Fiddle:http : //jsfiddle.net/nkZjR/200/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将元素移动到鼠标位置

来自分类Dev

如何将统一预制件移动到鼠标单击位置?

来自分类Dev

如何将统一预制件移动到鼠标单击的位置?

来自分类Dev

如何将2D角色(带有动画)移动到C#中的鼠标单击位置?

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

如何将小部件移动到特定位置?

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

如何将水印移动到视频位置并停止?

来自分类Dev

您如何将信封移动到特定位置?

来自分类Dev

如何将按钮移动到确切位置?

来自分类Dev

如何将 pawn 移动到它的位置

来自分类Dev

如何在没有绝对鼠标移动的情况下将鼠标移动到屏幕上的任何位置?

来自分类Dev

将剪辑路径位置移动到鼠标光标

来自分类Dev

IntelliJ将鼠标光标移动到随机位置

来自分类Dev

如何将组合框移动到其垂直布局的底部?

来自分类Dev

Symyfony 3.4 - 如何将实体移动到其他数据库

来自分类Dev

如何将块移动到lib

来自分类Dev

如何将容器移动到中间?

来自分类Dev

如何将图标移动到右端?

来自分类Dev

旋转过渡后如何将节点返回到其原始位置

来自分类Dev

如何将node_modules正确移动到其他位置

来自分类Dev

如何将按钮移动到随机位置?(快速)在iAd展示时

来自分类Dev

使用CSS,如何将DIV移动到中心位置的左侧?

来自分类Dev

QTabWidget。如何将一个标签移动到正确的位置?

来自分类Dev

如何将光标移动到图表的任何位置,而不仅是系列数据点?

来自分类Dev

如何将文本移动到.PDF中的X,Y位置

来自分类Dev

高图/高库存:如何将工具提示位置移动到数据组的中心

来自分类Dev

如何将一条线的点移动到特定位置?

来自分类Dev

如何将视图从Y位置移动到另一个Y

Related 相关文章

  1. 1

    如何将元素移动到鼠标位置

  2. 2

    如何将统一预制件移动到鼠标单击位置?

  3. 3

    如何将统一预制件移动到鼠标单击的位置?

  4. 4

    如何将2D角色(带有动画)移动到C#中的鼠标单击位置?

  5. 5

    如何将按钮移动到随机位置?(迅速)

  6. 6

    如何将小部件移动到特定位置?

  7. 7

    如何将按钮移动到随机位置?(迅速)

  8. 8

    如何将水印移动到视频位置并停止?

  9. 9

    您如何将信封移动到特定位置?

  10. 10

    如何将按钮移动到确切位置?

  11. 11

    如何将 pawn 移动到它的位置

  12. 12

    如何在没有绝对鼠标移动的情况下将鼠标移动到屏幕上的任何位置?

  13. 13

    将剪辑路径位置移动到鼠标光标

  14. 14

    IntelliJ将鼠标光标移动到随机位置

  15. 15

    如何将组合框移动到其垂直布局的底部?

  16. 16

    Symyfony 3.4 - 如何将实体移动到其他数据库

  17. 17

    如何将块移动到lib

  18. 18

    如何将容器移动到中间?

  19. 19

    如何将图标移动到右端?

  20. 20

    旋转过渡后如何将节点返回到其原始位置

  21. 21

    如何将node_modules正确移动到其他位置

  22. 22

    如何将按钮移动到随机位置?(快速)在iAd展示时

  23. 23

    使用CSS,如何将DIV移动到中心位置的左侧?

  24. 24

    QTabWidget。如何将一个标签移动到正确的位置?

  25. 25

    如何将光标移动到图表的任何位置,而不仅是系列数据点?

  26. 26

    如何将文本移动到.PDF中的X,Y位置

  27. 27

    高图/高库存:如何将工具提示位置移动到数据组的中心

  28. 28

    如何将一条线的点移动到特定位置?

  29. 29

    如何将视图从Y位置移动到另一个Y

热门标签

归档