Discuss Scratch
- Discussion Forums
- » 日本語
- » 質問コーナー3
- sky_77
- Scratcher
500+ posts
質問コーナー3
押されたキーを変数に入れるみたいなことができないですか?リストなら複数押された時もできます。
This is a signature. It's not written manually.
これは署名といっていちいち手動で書いてません(この注意書きの発案者:s-t-p氏)
Rainbow Post Generator
これは署名といっていちいち手動で書いてません(この注意書きの発案者:s-t-p氏)
Rainbow Post Generator
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█████
500+/1000 posts Bar Generator For Signature 署名用バー生成機
- foo-eta
- Scratcher
1000+ posts
質問コーナー3
このブロックではだめですか? 押されたキーを変数に入れるみたいなことができないですか?
[] と聞いて待つ
Last edited by foo-eta (July 1, 2019 09:36:07)
ここはスクラッチのサイトの中なので、スクラッチのことを話しましょう。
意見・反対意見・指摘いつでもウェルカムです
コミュニティガイドラインチュートリアル
日本語フォーラムのつかいかたチュートリアル
著作権を守ろう
- KimiruHamiru
- New to Scratch
500+ posts
質問コーナー3
ちょっと言葉で説明しにくいのですが、() 秒待つの働きについて質問です。
「画面を再描写せずに実行する」を有効にした定義ブロックに上のブロックを付けて実行するとものすごく重くなるのは、「何もしない」という動きを繰り返しているから(Pythonで言うならpassを繰り返す)という認識で良いのでしょうか。
@greenFlagがクリックされたとき
全部消す
(20)回繰り返す
描画
end
定義 描画というコードを動かした場合、環境依存かつ大雑把ですが、
(10)回繰り返す
(どこかの場所 v)へ行く
スタンプ
end
(1)秒待つ
この定義ブロックの、
「スタンプのあるループの部分」は
「画面を再描画せずに実行する」がオフの場合は
「スタンプを1つずつ押す」=ネコが1匹ずつ次々に10匹現れる=スタンプ1つにつき1フレーム*10個(10/30秒=0.33秒)使って実行完了
「画面を再描画せずに実行する」がオンの場合は
「スタンプを10個ずつ押す」=ネコが10匹ずつ現れる=スタンプ10個につき1フレーム(1/30秒)使って実行完了
という動作をするけど
「1秒待つの部分」
については、
描画を伴わないブロックなので、設定に関わらず、常に「1秒待つ」=30フレーム(30/30秒) 使って実行完了
という挙動をしているように見えます。
「1秒待つ」がある場合は、定義ブロックの設定がどうであろうと、ターボモードであろうと、そこで「1秒待つ」
というのが、私には期待通りの動作で、「すごく重くなる」ことこそが期待通りなのでは、と思います。
- shogimania
- Scratcher
52 posts
質問コーナー3
もう一度スクリプトを見直してみてください。 アクションゲームを作っています
ステージ13まで作るのですがステージ10
になってステージ11にいこうとすると
ステージ1になってしまいます
どうすればいいですか
https://scratch.mit.edu/projects/317167026/editor
どうも!shogimaniaです!
Sチューブ始めちゃいました!!!!!
弟shogimania02もフォローお願いします!
when green flag clicked
say [フォローしてくれえええええええええええええええええええええええええ!(笑)]
- abee
- Scratcher
1000+ posts
質問コーナー3
どこを見直してよいか書かないと、相手に伝わらないと思います。
もし、それが分からないのであれば、無理に答える必要はありません。
このケースでは、
もし、それが分からないのであれば、無理に答える必要はありません。
このケースでは、
[ステージ v] を [1] にするが書かれているところの前後が怪しいです。
- SYOUI-2
- Scratcher
100+ posts
質問コーナー3
押されたキーを変数に入れるみたいなことは難しいのですが 押されたキーを変数に入れるみたいなことができないですか?
入力した文字を変数に入れることができます
[] と聞いて待つ
[変数 v] を (答え) にする
ヘイトスピーチはコミュニティガイドライン違反です、スクラッチで人種差別はやめましょう。
※投稿とは関係ないことが書かれていますがこれは署名と言っていちいち手動で書いていません
↓サブアカウント↓
MSK-collaborationsabusizu2007
amagasakijrw
- SYOUI-2
- Scratcher
100+ posts
質問コーナー3
ジャンプのやりかたを教えてください。こちらをご覧ください
ヘイトスピーチはコミュニティガイドライン違反です、スクラッチで人種差別はやめましょう。
※投稿とは関係ないことが書かれていますがこれは署名と言っていちいち手動で書いていません
↓サブアカウント↓
MSK-collaborationsabusizu2007
amagasakijrw
- inoking
- Scratcher
1000+ posts
質問コーナー3
Scratch の各スプライトは「疑似」マルチスレッドで動作しています。() 秒待つの働きについて質問です。
「画面を再描写せずに実行する」を有効にした定義ブロックに上のブロックを付けて実行するとものすごく重くなるのは、「何もしない」という動きを繰り返しているから(Pythonで言うならpassを繰り返す)という認識で良いのでしょうか。
この辺の詳細は私もよく分かりません。
各スプライトやクローンはそれぞれが1/30秒単位で周期的に動作していますが
描画込みのループがあるとそこでその回の処理を中断します。
「()秒待つ」を入れると
その時点で即座にその回の処理を放棄します。
言わば「yield」のようなものです。
なのですが
「画面を再描画せずに実行する」内で(「()秒待つ」に限らず)待ち処理に入ると
何故か正常に「yield」動作とならず
CPU資源を占有した?ような状態となります。
これが Scratch の設計どおりなのかどうかは分かりませんが
少なくとも Scratch 2.0 のときからこのような動作をしています。
このため「画面を再描画せずに実行する」内に待ち系のブロックを入れてはいけません。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- ARATAKU
- Scratcher
500+ posts
質問コーナー3
これは単なる推測ですが、おそらく2000年からの時間を再描画時に再計算しているため、1秒待つ等をいれると、1秒以上固まってしまうのだと思います。また、なぜかコードを組む範囲とステージとの再描画のタイミングがリンクしています。これによって、全体的に動作が遅くなっているように感じるのではないかと思います。
2.0の頃は、なぜかページごと重くなってしまっていましたが、3.0では、僕の環境では、ページは重くなりません。
(ただし僕の環境での話です。)
2.0の頃は、なぜかページごと重くなってしまっていましたが、3.0では、僕の環境では、ページは重くなりません。
(ただし僕の環境での話です。)
つかれた。もう聞き飽きたよ
- inoking
- Scratcher
1000+ posts
質問コーナー3
「2000年からの日数」は Date オブジェクトのメソッドから換算しているだけなので関係ありません。 これは単なる推測ですが、おそらく2000年からの時間を再描画時に再計算しているため、1秒待つ等をいれると、1秒以上固まってしまうのだと思います。また、なぜかコードを組む範囲とステージとの再描画のタイミングがリンクしています。これによって、全体的に動作が遅くなっているように感じるのではないかと思います。
2.0の頃は、なぜかページごと重くなってしまっていましたが、3.0では、僕の環境では、ページは重くなりません。
(ただし僕の環境での話です。)
ソースコード
Last edited by inoking (July 1, 2019 12:15:24)
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- KimiruHamiru
- New to Scratch
500+ posts
質問コーナー3
rihokahosanntannさんの ジャンプが終わった後ちゃんと着地するけど、こざみきに震えます。どうしたらいいですか。
https://scratch.mit.edu/projects/319216318/editor/
に関して言えば、
ずっとという部分がコキザミみ震える原因ですね。
y座標を(-5)ずつ変える
もし<(黒)色に触れた>なら
y座標を(-70)にする
end
end
「背景」の黒と「ユニコーン」の位置の関係で、地面に触れた時、地面より少し高いy=-70に固定しようとしているために、
地面に触れたとたんに少し浮き上がってまた落ちる、ということが起きているようです。
ずっとぐらいに数字を調整するか、背景かユニコーンの位置か中心を調整すると、とりあえず直ると思います。
y座標を(-5)ずつ変える
もし<(黒)色に触れた>なら
y座標を(-85)にする
end
end
以下、余談になるのですが、
「地面に引っ張られる力」と「地面から押し返される力」が釣り合うことが「立って動かない状態」だ。
という考え方で書くなら、
ずっととか書くこともできて、この場合は地面に凹凸があっても(条件付きで、ある程度は、)対応できます。
y座標を(-5)ずつ変える
もし<(黒)色に触れた>なら
y座標を(5)ずつ変える
end
end
別な見方として、
「y座標を-85にする」という書き方をするのは、「地面の高さが一定であることが前提」
だから、
「もし黒色に触れたなら」という書き方ではなくて「もしy座標 < -85なら」、つまり
ずっとといった書き方の方が、わかりやすいかな、という気もします。
y座標を(-5)ずつ変える
もし<(y座標) < (-85)>なら
y座標を(-85)にする
end
end
- KimiruHamiru
- New to Scratch
500+ posts
質問コーナー3
サーバエラーが出て二重投稿になっていたため削除。
Last edited by KimiruHamiru (July 1, 2019 12:51:33)
- KimiruHamiru
- New to Scratch
500+ posts
質問コーナー3
移動のプログラム作るときにバグなのかやっても動作しない時がありますどうしたらよいでしょうか
色んな状況が考えられるので、「どうすれば直るか」は答えようがないのですが、
1)バグなのかやっても動作しない時がありますどうしたらよいでしょうか
という話では、
() と言うブロックを使う、という方法があります。
これを使って
「イベントが正しく発生したか観察する。あるブロックが実行されたかどうか観察する」
[スペース v]キーが押されたとき
[スペースキーが押された!] と言う
本来の処理...
「変数の値がどう変化したかを観察する」
(yの変化量) と言う
[10]秒待つ
など。
「最終的には要らないブロックだけど、デバッグのために仮に入れる」というこの方法は、何が起きているかわからない時には有効だと思います。Scratchは変数の値を画面に出すことができるので、それを直接観察してもよいです。
2)移動のプログラム作るときにバグなのかやっても動作しない時
というテーマで、これまでわたしが経験したのは
[浮力 v] を [-5] にするといったコードで、数字を全角で「-5」とか全角で入力していたために、自動型変換で数値の「0」と解釈されていた
とかいうのがありました。いまも結構やります。
全角半角はすごく判別しにくい場合もあるので、不安な時は「ほかのソフト(例えばこのフォーラムの入力フィールドとかでも)で確実に半角で入力してScratch画面にカット&ペーストする」とかやることもあります。
ほかには、
「WASDキーで動かすようなプログラム」で、実行時に日本語入力モードになっていて
「WASDが入力されていた」ために動かなかった。
みたいなこともありましたが、これはScratch3では起きないかも?
- PIPOsen_0801
- Scratcher
16 posts
質問コーナー3
物体が移動するプログラムを作成するとき方法は二つありますよね?
①・・・自分を移動させ、端に触れたら次の情景に変える。
②・・・自分は中央に留まり、情景を移動させる。
私は②の方法で飛行機をmap上に飛んでいるように見せたく試行錯誤しましたが、方向転換が出来ません。
具体的に言うと飛行機が常に前に進んでいる場合は常に情景は後ろに流れます。しかし方向転換をすると、
情景の進む方向がずれたり、そもそもの情景の位置が大幅にずれてしまします。どうすればいいでしょうか?
①・・・自分を移動させ、端に触れたら次の情景に変える。
②・・・自分は中央に留まり、情景を移動させる。
私は②の方法で飛行機をmap上に飛んでいるように見せたく試行錯誤しましたが、方向転換が出来ません。
具体的に言うと飛行機が常に前に進んでいる場合は常に情景は後ろに流れます。しかし方向転換をすると、
情景の進む方向がずれたり、そもそもの情景の位置が大幅にずれてしまします。どうすればいいでしょうか?
ずっとこの<…>の内容を知りたいです。教えてください
もし <[右向き矢印 v] キーが押された> なら
...
end
end
- GANDAM5
- Scratcher
100+ posts
質問コーナー3
物体が移動するプログラムを作成するとき方法は二つありますよね?こんな感じのことでしょうか、背景に置いてあるものが動いているように見える時、自分が回転すると、自機の座標を原点、動かしたいものの座標をx、yとした時、右にθ度回ると対象のxとyは、
①・・・自分を移動させ、端に触れたら次の情景に変える。
②・・・自分は中央に留まり、情景を移動させる。
私は②の方法で飛行機をmap上に飛んでいるように見せたく試行錯誤しましたが、方向転換が出来ません。
具体的に言うと飛行機が常に前に進んでいる場合は常に情景は後ろに流れます。しかし方向転換をすると、
情景の進む方向がずれたり、そもそもの情景の位置が大幅にずれてしまします。どうすればいいでしょうか?ずっとこの<…>の内容を知りたいです。教えてください
もし <[右向き矢印 v] キーが押された> なら
...
end
end
(x*cos (θ) + y*sin (θ),x*sin (θ) + y*cos (θ))
になります。これ使えばいけるんじゃ無いかと思います。なんか間違ってたら指摘してください
自機が回るのですね。それなら、
背景のXを移動速度*-sin(θ)、Yを移動速度*-cos(θ)動かせばいいはずです
Last edited by GANDAM5 (July 2, 2019 10:41:12)
※この投稿はGANDAM5のみの意見です
- inoking
- Scratcher
1000+ posts
質問コーナー3
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている