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ループが 2 つあることがわかります。コードが実際に実行されている方法は次のとおりです。

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

「switch costume to[]」の 2 つのブロックを配置すると、それらは非常に速く変化し、変化していないように見えるため、表示するには、スイッチ コスチュームの各ブロックの後に 1 つのタイマーを配置し、forever を削除する必要があります。次のようにブロックします。

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 を (10) ずつそれらの中央に配置しました

于 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 に答える