我在头上的define()块无法正常工作,我做错了吗?

时间:2015-05-29 01:47:35

标签: sprite mit-scratch

我正在进行一项任务,我必须在其中进行精灵移动。我画了每一帧,我想换掉服装,让它看起来像是在移动。

我的块看起来像这样:

define walking
    forever
       switch costume to walk1
       switch costume to walk2

我的代码看起来像这样:

when *flag* clicked
    forever
        if key right arrow pressed? then
            change x by 10
            walking

但没有发生任何事情。

3 个答案:

答案 0 :(得分:3)

为了弄清楚它是如何工作的,让我们来看看你的代码是否真的有效。这是Scratchblocks中的代码。

因此,如果你看一下,你会注意到有两个forever循环。以下是您的代码实际运行的方式:

when flag clicked
forever
    if <key [right arrow v] pressed?> then
        change x by (10)
        forever
            switch costume to [walk1 v]
            switch costume to [walk2 v]
        end
    end
end

See it in Scratchblocks.

按下右箭头键后,它会卡在开关 - 服装循环中!通过从自定义块定义中删除永久循环,它应该是固定的。

答案 1 :(得分:0)

简单修复:从定义块

中删除forever循环
define walking:                ◄Fixed script 
    switch costume to (1)
    switch costume to (2)

答案 2 :(得分:0)

要获得更好的图形,您可以执行以下操作:

When FLAG clicked
    forever
      if <key [right arrow v] pressed?> then
      next costume
      wait 0.1 secs
      change x by(10)
    end
 end 

See in scratch blocks