在Scratch中拖动精灵

时间:2010-03-01 13:22:40

标签: drag-and-drop mit-scratch

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

7 个答案:

答案 0 :(得分:7)

Scratch Wiki

涵盖了这一点

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]

进行更改