【发布时间】:2016-05-28 07:49:11
【问题描述】:
我在画布上绘制了一艘“船”,我希望能够在单击它时在画布底部左右拖动它。我做了一些研究,但我没有运气。
我假设我使用 onMouseDown 来执行此操作,所以当页面加载时我有这个...
canGame.onMouseDown = canCanvas.onMouseDown(e);
这是创建我的船的代码
gShip = spriteNew("MediumSpringGreen", 230, 950, 150, 20);
从那里我不确定该怎么做。我有一个游戏更新功能,可以将入侵者移到屏幕下方。一个 gameInit 函数,它将在屏幕上绘制入侵者并运送。我也有一个 gameDraw 函数,它可以在屏幕上绘制所有内容。我还有一些对我的问题并不重要的其他问题。
这是带有完整源代码的 jsfiddle。出于某种原因,尽管当我运行 HTM 文件但不在 jsfiddle 中时它会在我的浏览器上运行。
【问题讨论】:
-
您的代码不能在 jsfiddle 中运行,只是因为在“框架和扩展”部分中,您应该选择“No wrap - in ”
-
到目前为止你尝试过什么?您可能需要 3 个事件: mousedown 以知道鼠标已按下以拖动您的船; mousemove 如果您的鼠标按下,它将为您提供鼠标的位置(x,y),以便您可以重新绘制您的船; mouseup 就知道你不再拖船了。
-
我还没有尝试过。我会研究这些事件,看看我能做些什么
-
您的问题解决了吗?你看到我的回答了吗?
标签: javascript jquery html canvas