在Scratch中拖动精灵

ruc*_*twa 2 drag-and-drop mit-scratch

如何在Scratch中执行期间拖动精灵?

Sci*_*ter 8

这在Scratch Wiki上有所涉及.

boisvert的答案在技​​术上是正确的,但是,他的脚本总是会从它的中心拖动精灵.使用稍微更高级的脚本将从拾取的位置拖动,更像挂锁:

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
Run Code Online (Sandbox Code Playgroud)

(上面的wiki链接是可视块格式.)


boi*_*ert 5

单击精灵名称旁边的挂锁。它将打开。然后该Sprite在可执行版本中变为可拖动。

或者,您可以使用脚本来编程其拖动行为:

if <mouse down>
  set x to (mouse x)
  set y to (mouse y)
Run Code Online (Sandbox Code Playgroud)

它可以变得更聪明,可以在延迟的偏移位置上跟随鼠标,在放下时捕捉到某个位置,在鼠标经过时突出显示某些内容...如果使用脚本,则选择是无限的。