Discuss Scratch
- Discussion Forums
- » 日本語
- » 意外と知られていないテクニック集
- -_make_game_-
-
11 posts
意外と知られていないテクニック集
気になったため検証してみました。
全く関係無いけどいちいち @greenflag がクリックされたとき と入力しないと一番上のこのブロックを出せないのがちょっと面倒。
(以下、「フレーム」は「F」と略します)
また、このプログラム内で使用されているFPSの算出方法は実は「開始から今までの平均FPS」になってしまっており、最初の数Fの間は実際とはかなり離れた値が出てしまいます。毎FリストにFPSを記録するようにして調べた所、開始して1Fの時の値はInfinity、2Fの時は60前後、100F時点で約30.6、1000Fで約30.3、と少しずつ実際の値に近づくものの、実際のFPSとは違う値となっています。
正確なFPSを求めたい場合は、
全く関係無いけどいちいち @greenflag がクリックされたとき と入力しないと一番上のこのブロックを出せないのがちょっと面倒。
@greenflag がクリックされたとき#4006を参考に上のようなコードを作り、実行してみました。何度か実行した結果、「かかった時間」の値はおおよそ9.9前後になりました。300の部分を6倍の1800に変えた時、「かかった時間」の値が59.4になった事から、恐らくscratchのFPSは30ぴったりでは無いのでしょう。(重いプログラムでなければ大体30.3くらいになるはず…)
[経過フレーム v] を [0] にする
タイマーをリセット::sensing
<(経過フレーム) = [300]> まで繰り返す
表示する
隠す
[経過フレーム v] を (1) ずつ変える
[FPS v] を ((経過フレーム) / (タイマー::sensing)) にする
end
[かかった時間 v] を (タイマー::sensing) にする
(以下、「フレーム」は「F」と略します)
また、このプログラム内で使用されているFPSの算出方法は実は「開始から今までの平均FPS」になってしまっており、最初の数Fの間は実際とはかなり離れた値が出てしまいます。毎FリストにFPSを記録するようにして調べた所、開始して1Fの時の値はInfinity、2Fの時は60前後、100F時点で約30.6、1000Fで約30.3、と少しずつ実際の値に近づくものの、実際のFPSとは違う値となっています。
正確なFPSを求めたい場合は、
定義 FPS算出 (何Fの平均か)のようなコードを組んで毎F呼び出せば直近数FのFPSの正確な値が算出可能かと思います。
もし <([平均FPS算出用 v] の長さ :: list) = (何Fの平均か::custom-arg)> なら
[平均FPS算出用 v]の(1)番目を削除する::list//古く不要なデータは削除する
end
(((((1) / ((タイマー) - (FPS算出用))) * (10)) を四捨五入) / (10)) を [平均FPS算出用 v] に追加する//このFのFPSを小数第一位まで求めています
もし <((経過フレーム) を (何Fの平均か::custom-arg) で割った余り) = [0]> なら//毎FごとにFPSを変えると見ずらいため
[FPS v] を (平均の算出プログラムを書くと長くなるので割愛::undefined) にする//こちらも小数第一位程度までの四捨五入を推奨
end
[FPS算出用 v] を (タイマー) にする
ユーザーネームが「ゲーム作り」ですが、ゲーム以外の作品も作っています。
scratchを開いたとき::events hatなお、これは「署名」と言って上の本文とは全く関係が無く、投稿をすると自動的に表示される物です。
もし <[暇] = [True]> なら::control
[何でも良いから何かプログラムを作ろう!]と言う::looks
end
- inoking
-
1000+ posts
意外と知られていないテクニック集
そうですね。
fps はいわゆる「移動平均」で求めるのが正しいでしょう。
fps はいわゆる「移動平均」で求めるのが正しいでしょう。
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- KiHa_47Kei
-
100+ posts
意外と知られていないテクニック集
Last edited by KiHa_47Kei (Feb. 8, 2024 10:26:09)
重要 これは署名と言って、本文とは関係ありません。
—————-解説—————- —————-ああ—————-
広島県在住、10代。 |ああぁああああああああ。
主に撮り鉄をしています。 |あああああああ。あああああああああ?ああああ。
よく山陽本線のどこかの踏切に出没しています。 |あああああああああああああああああ!!
他サイトにアカウントを持っています。 |ああああああああああああああああ。
こう見えて初心者です。 |ああああぁあああああああぁああああ。
103系、105系500番台、113系、115系が好きです。|あああああああ。ああああ!!
- yucca42
-
100+ posts
意外と知られていないテクニック集
苦戦しがちなサロゲートペアの判定
追記: scratchblocksバグった…
追記: scratchblocksバグった…
定義 サロゲートペアかどうか (1文字目) (2文字目)
[\\uD7FF v] を [] にする
[\\uDC00 v] を ([
Last edited by yucca42 (Feb. 12, 2024 05:38:23)
- hamuumakara
-
3 posts
意外と知られていないテクニック集
[上矢印 v] キーが押されたとき
もし <<[上矢印 v] キーが押された> ではない> なら
y座標を (10) ずつ変える
end
- medal-kuraharu
-
14 posts
意外と知られていないテクニック集
#4016
それは何をするプログラムですか?
それは何をするプログラムですか?
私の環境
My browser / operating system: MacOS Macintosh X 10.15.7, Safari 16.6, No Flash version detected
macOSになってしまっていますがipad第七世代です
初心者です
- yuhake_sub
-
6 posts
意外と知られていないテクニック集
その月限定のプログラムを作りたいとき
⚑ がクリックされたとき
もし <(現在の [月 v]) = [1から12までの数字]> なら
[ここに何かを入れる] と言う
end
Last edited by yuhake_sub (April 1, 2024 23:54:58)
- -_make_game_-
-
11 posts
意外と知られていないテクニック集
#4018
つまりは、
BBcode(フォーラムで文字の表示を変えたりブロックを表示するためのコード)に慣れていないのであれば、こちらのページやこちらのページを参照してみると良いでしょう。また、緑のチェックマークをクリックする事で投稿のプレビューを入力欄の下に表示する事ができます。非常に便利ですので、ぜひ覚えておいてください。何気にプレビュー機能って知名度低い気がする…
つまりは、
@greenflag がクリックされたときという事でしょうか。
もし <(現在の [月 v]) = [(1以上12以下の数字を入力)]> なら
...
end
BBcode(フォーラムで文字の表示を変えたりブロックを表示するためのコード)に慣れていないのであれば、こちらのページやこちらのページを参照してみると良いでしょう。また、緑のチェックマークをクリックする事で投稿のプレビューを入力欄の下に表示する事ができます。非常に便利ですので、ぜひ覚えておいてください。何気にプレビュー機能って知名度低い気がする…
ユーザーネームが「ゲーム作り」ですが、ゲーム以外の作品も作っています。
scratchを開いたとき::events hatなお、これは「署名」と言って上の本文とは全く関係が無く、投稿をすると自動的に表示される物です。
もし <[暇] = [True]> なら::control
[何でも良いから何かプログラムを作ろう!]と言う::looks
end
- nposss
-
100+ posts
意外と知られていないテクニック集
(A)≦(B)::operators booleanを再現するには
<(A)<(B)>または<(A)=(B)>::operators booleanよりも
<(A)>(B)>ではない::operators booleanの方が効率的
- inoking
-
1000+ posts
意外と知られていないテクニック集
ちなみに、Scratch では短絡評価を行われないため上記は正しいのですが(A)≦(B)::operators booleanを再現するには<(A)<(B)>または<(A)=(B)>::operators booleanよりも<(A)>(B)>ではない::operators booleanの方が効率的
短絡評価が行われるプログラミング言語では
A < B の出現率が高い場合、以下は前者のほうが早いです。
<(A)<(B)>または<(A)=(B)>::operators booleanよりも
<(A)>(B)>ではない::operators boolean
これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
つまり「子ども SNS」として遊ぶためのものではない
・「『報告乱用された』それは間違いです。Scratch チームは問題のない作品を手動で非共有にすることはありません。」※自動の場合は「多数報告された」というメッセージあり
・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもない、ナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり、共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
- 5656godzilla
-
7 posts
意外と知られていないテクニック集
マウスホイールが上に転がされるとy座標を10ずつ変えるプログラムです。 #4016
それは何をするプログラムですか?
演算ブロックは便利
例
(<key [→向き矢印キー v] pressed?> - <key [左向き矢印キー v] pressed?>これを
change x by ()に入れると…?
- medal-kuraharu
-
14 posts
意外と知られていないテクニック集
#4025
ありがとうございます
ありがとうございます
私の環境
My browser / operating system: MacOS Macintosh X 10.15.7, Safari 16.6, No Flash version detected
macOSになってしまっていますがipad第七世代です
初心者です
- tsubuanman
-
100+ posts
意外と知られていないテクニック集
https://scratch.mit.edu/projects/536863944
https://scratch.mit.edu/projects/958298397
これらのプロジェクトは、
前者後者は私の友人が作ったものです。
これらのプロジェクトは、接触面の判定を壁で管理したり、コスチュームで判断したりしています。
しかし、私は新たにコスチュームやスプライトを追加するのは手間だと感じたので前者のプロジェクトをリミックスしてこのプロジェクトを作ってみました。
私の作ったこのプロジェクトでは上下左右の4方向に対応するようにコードを作り、壁に接触した際に座標をわずかに移動させて接触面の判定を管理しています。
欠点として挙げられるものは、
https://scratch.mit.edu/projects/958298397
これらのプロジェクトは、
もし端に着いたら、跳ね返るというブロックを使用せずに跳ね返る挙動を再現している、ないしその要素が含まれているものです。
前者後者は私の友人が作ったものです。
これらのプロジェクトは、接触面の判定を壁で管理したり、コスチュームで判断したりしています。
しかし、私は新たにコスチュームやスプライトを追加するのは手間だと感じたので前者のプロジェクトをリミックスしてこのプロジェクトを作ってみました。
私の作ったこのプロジェクトでは上下左右の4方向に対応するようにコードを作り、壁に接触した際に座標をわずかに移動させて接触面の判定を管理しています。
欠点として挙げられるものは、
- 変数が必要
- 斜面に対応していない
- 自由な回転に対応していない
- 冒頭のブロックと全く同じ挙動はしない
Last edited by tsubuanman (Feb. 16, 2024 13:41:45)
(´・ω・`)
- medal-kuraharu
-
14 posts
意外と知られていないテクニック集
@greenflagがクリックされたとき
[任意の文字列1] と聞いて待つ
[ 変数1 v] を (答え) にする
[任意の文字列2] と聞いて待つ
[ 変数2 v] を (答え) にする
([あなたの回答は] と ((変数1) と ([と、] と (変数2)))) と言う
回答を保存できる
(常識かもしれません)
(回答のところ1が抜けていたため訂正)
(#4026 の意見を受け訂正)
Last edited by medal-kuraharu (June 28, 2024 04:30:26)
私の環境
My browser / operating system: MacOS Macintosh X 10.15.7, Safari 16.6, No Flash version detected
macOSになってしまっていますがipad第七世代です
初心者です
- KRTSD0823
-
100+ posts
意外と知られていないテクニック集
ブロックプラグインを理解していない人がしがちな事(偏見?)
実際かなり見てきているので偏見よりは個人の感想?みたいな感じです
となっており、この vが選択するマーク?を表示しています。
ですが、このvを謎のvだと勘違いしてしまい、とりあえず全て消しているような気がします。
しかし!これがないと入力欄のような感じで、白くなってしまいます。見た目的にも少し変
実際かなり見てきているので偏見よりは個人の感想?みたいな感じです
[... v] を [...] にするなどの、選択部分があるブロックの中身は
[scratchblocks]
[... v] を [...] にする
[/scratchblocks]
ですが、このvを謎のvだと勘違いしてしまい、とりあえず全て消しているような気がします。
しかし!これがないと入力欄のような感じで、白くなってしまいます。見た目的にも少し変
[...] を [...] にするもしvを抜いているようであればこれからは付けてみてください。ちなみに、vの前には空白が必要です。
必ずしも「自分が正しい」とは限らない指摘されたことはできるだけ守った方がいい
oldest<=ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー=>newest
消しポン(CM) |【リアルタイム】最後に旗を押したユーザを保存|【Scratch】[アニメ]その宣伝、違反です。
![](https://cdn2.scratch.mit.edu/get_image/project/971147072_150x150.png)
![](https://cdn2.scratch.mit.edu/get_image/project/984552426_150x150.png)
![](https://cdn2.scratch.mit.edu/get_image/project/998745418_150x150.png)
;
- Yumukkuri2023
-
13 posts
意外と知られていないテクニック集
もうほかの人が言ってたらすみません。
( all) 番目を [list v] から削除するを使うと「リストをすべて削除する」のブロックと同じ動作をします。