0

我正在执行一项任务,我必须在其中进行精灵移动。我已经绘制了每一帧,我想切换服装让它看起来像在移动。

我的块看起来像这样:

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

但什么都没有发生。

4

4 回答 4

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

在 Scratchblocks 中查看。

一旦你按下右箭头键,它就会卡在切换服装循环中!通过从您的自定义块定义中删除永久循环,它应该被修复。

于 2015-06-06T11:27:54.100 回答
0

要获得更好的图形,您可以这样做:

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

在暂存块中查看

于 2018-10-19T00:22:31.427 回答
0

当您放置两块“切换服装到[]”时,它们会非常快速地变化,并且对您来说看起来它们并没有改变,因此要让您看到,您需要在每个切换服装块之后放置一个计时器并永久移除块,像这样:

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

为了获得更好的视觉效果,我将 x by (10) 放在它们的中间 See it in Scratchblocks

于 2015-09-13T17:37:28.023 回答
0

简单修复:从定义块中删除永久循环

define walking:                ◄Fixed script 
    switch costume to (1)
    switch costume to (2)
于 2016-05-08T10:28:50.943 回答