如何在Scratch中执行期间拖动精灵?
答案 0 :(得分:7)
boisvert's answer在技术上是正确的,但是,他的脚本将始终从它的中心拖动精灵。使用稍微更高级的脚本将从拾取的位置拖动,更像挂锁:
when green flag clicked
forever
if <<mouse down?> and <touching [mouse-pointer v]?>>
repeat until <not <mouse down?>>
set [offset x v] to ((x position) - (mouse x))
set [offset y v] to ((y position) - (mouse y))
go to x: ((mouse x) + (offset x)) y: ((mouse y) + (offset y))
end
else
wait until <not <mouse down?>>
end
(上面的wiki链接是可视块格式。)
答案 1 :(得分:3)
单击精灵名称旁边的挂锁。看起来很开放;然后精灵在可执行版本中变得可拖动。
或者,您可以使用脚本编写其拖动行为:
if <mouse down>
set x to (mouse x)
set y to (mouse y)
它可以变得更加聪明,在偏移位置跟随鼠标,延迟,在跌落时捕捉到一个位置,突出显示某些内容...如果你使用脚本,你的选择是无限的。
答案 2 :(得分:0)
有点臭,但我发现你必须“停止”你的剧本然后改变你的服装。我正在做一个项目,在我的划痕环境中,那个人必须跳过一些东西,为了调整程序,我必须停止脚本并调整服装变化变量。所以它确实很臭,但你需要在更改服装偏好之前停止程序。
答案 3 :(得分:0)
对于快速简单的路线,您只需点击精灵的信息按钮:Click here for image 1。
之后,您应找到显示can drag in player
的框,然后点击:Click here for image 2
实际上就是这样。现在,只要有人玩你的游戏,他们就可以拖动精灵。你必须让他们知道这是可能的,因为大多数项目都不允许这样做。
答案 4 :(得分:0)
如果您不介意脚本未运行时精灵是否仍可拖动,则在选择了精灵时按右上角的i
按钮。然后,按Can drag in player
。但是,这不适用于Scratch 3.0,因此您需要使用我的另一种方法脚本。
when green flag clicked
forever
if <<mouse down?> and <touching [mouse-pointer]>>
go to [mouse-pointer]
答案 5 :(得分:0)
您可以使用<mouse down?>
布尔值,touching [mouse pointer]?
和变量(mouse x)
和(mouse y)
来获取鼠标的坐标并检测鼠标是否按下。这是您的操作方法:
单击绿色标志时 ///单击绿色标志时
永远永远 ,永远做到这一点。
如果触摸[鼠标指针]?和鼠标按下? //触摸鼠标指针?鼠标按下了吗?
将x设置为(鼠标x) //将我的x位置设置为鼠标的x位置。
将y设置为(鼠标y) //将y位置设置为鼠标的y位置。
结束if循环结束 //如果上面的内容都不正确,请不要单击鼠标
永久终止循环永久终止此循环 //永久重复此过程!
如果您需要其他方面的帮助,请跟随我如果 @ endermite334。
答案 6 :(得分:0)
默认情况下,Sprite在Scratch 3.0中是可拖动的。您可以使用set drag mode [not draggable]