Discuss Scratch

pnyonyy
Scratcher
19 posts

意外と知られていないテクニック集

皆さんがよく使っている
ずっと

もし <[ right] キーが押された> なら
x座標を (10) ずつ変える
end
もし <[ left] キーが押された> なら
x座標を (-10) ずつ変える
end
を、短縮することができます。
x座標を (<<<[ right] キーが押された> または <(([ left] キーが押された) - (2))>> * (10)) ずつ変える
こうすると、できます。

Last edited by pnyonyy (Aug. 11, 2023 04:08:03)


こんにちは。pnyonyyです。
scratchまだまだ初心者です。
ちょっと!!そこの君。↓の作品を見てもらえないかい?

onlinechat v1.0 みんなと話そう!!

pnyonyy
Scratcher
19 posts

意外と知られていないテクニック集

↑間違ったところあったらすみません

こんにちは。pnyonyyです。
scratchまだまだ初心者です。
ちょっと!!そこの君。↓の作品を見てもらえないかい?

onlinechat v1.0 みんなと話そう!!

taiyo_a
Scratcher
100+ posts

意外と知られていないテクニック集

#3846
それでは左矢印キーが押されたときもx座標を10ずつ変えてしまいます。
pnyonyy
Scratcher
19 posts

意外と知られていないテクニック集

#3849
すいません。解説文が間違っていました。
直します

こんにちは。pnyonyyです。
scratchまだまだ初心者です。
ちょっと!!そこの君。↓の作品を見てもらえないかい?

onlinechat v1.0 みんなと話そう!!

kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

スプライトを画面外に移動させるのは、
ずっと
大きさを (200) % にする
x座標を (...) ずつ変える
大きさを (100) % にする
end
や、
ずっと
隠す
x座標を (...) ずつ変える
表示する
end
↑これは機能しなかった。代わりに↓を。
ずっと
コスチュームを [大きいコスチューム v] にする
x座標を (...) ずつ変える
コスチュームを [元のコスチューム v] にする
end
などが有名だが、コスチュームに大きい透明の図形などをつけることでも可能。
しかし、あまりに大きいと画質が粗くなるので注意。
これがあまり知られてないことを願う。

Last edited by kinnniku_pi-mann (Aug. 12, 2023 13:03:21)


あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

pnyonyy wrote:

短縮することができます。
こうじゃないですか?
x座標を ((<[右矢印 v] キーが押された> + ((0) - <[左矢印 v] キーが押された>)) * (10)) ずつ変える

解説:trueが1に変換される仕組みを利用している。
   右矢印キーが押されたとき、1が出力される。
   左矢印キーが押されたとき、0-1で-1が出力される。
   そして、二つともを足して、10倍にする。
   つまり、
   何も押されてないとき
   {0+(0-0)}×10=0
   右矢印が押されたとき
   {1+(0-0)}×10=10
   左矢印が押されたとき
   {0+(0-1)}×10=-10
   両方押されたとき
   {1+(0-1)}×10=0

Last edited by kinnniku_pi-mann (Aug. 12, 2023 10:38:14)


あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
kouryou118103
Scratcher
1000+ posts

意外と知られていないテクニック集


x座標を ((<[右矢印 v] キーが押された> - <[左矢印 v] キーが押された> )* (10) )ずつ変える
で1ブロック減らせます。

Scratchはぼくより年上らしい。(2007/5/15 サービス開始)
kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

kouryou118103 wrote:

x座標を ((<[右矢印 v] キーが押された> - <[左矢印 v] キーが押された> )* (10) )ずつ変える
で1ブロック減らせます。
そうでしたね。もう項を習って、復習も完ぺきだったのに、こんなところで不意打ちを食らうなんて…

Last edited by kinnniku_pi-mann (Aug. 12, 2023 10:41:09)


あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

kinnniku_pi-mann wrote:

kouryou118103 wrote:

x座標を ((<[右矢印 v] キーが押された> - <[左矢印 v] キーが押された> )* (10) )ずつ変える
で1ブロック減らせます。
そうでしたね。もう項を習って、復習も完ぺきだったのに、こんなところで不意打ちを食らうなんて…
あと、変数にして、
@greenflagがクリックされたとき
ずっと
[x v] を ((<[右矢印 v] キーが押された> - <[左矢印 v] キーが押された> )* (2) )ずつ変える
もし <([絶対値 v] \( (x) \)) > [10]> なら
[x v] を ((10) * ((x) / ([絶対値 v] \( (x) \)))) にする
end
x座標を (x) ずつ変える
...
end
こんな感じで、慣性をつけることもできますね。

Last edited by kinnniku_pi-mann (Aug. 12, 2023 13:06:54)


あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
inoking
Scratcher
1000+ posts

意外と知られていないテクニック集

kinnniku_pi-mann wrote:

スプライトを画面外に移動させるのは、
ずっと
隠す
x座標を (...) ずつ変える
表示する
end
実際に動かしてみましたが
これでは画面外には移動しません。
投稿前に確認をお願いします。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

inoking wrote:

kinnniku_pi-mann wrote:

スプライトを画面外に移動させるのは、
ずっと
隠す
x座標を (...) ずつ変える
表示する
end
実際に動かしてみましたが
これでは画面外には移動しません。
投稿前に確認をお願いします。
はい。

あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
popochan7890
Scratcher
82 posts

意外と知られていないテクニック集

([0x] と [2A]) // 0xと[16進数]はまとめて書いても良い
のように先頭に0xをつけると16進数を数値として扱えるのは知られているが、

([0b] と [101010]) // まとめて(ry
のように先頭に0bをつけると二進数を数値として扱える。これは知らない人いたのでは?
popochan7890
Scratcher
82 posts

意外と知られていないテクニック集

(2000年からの日数)
について。

@greenFlagがクリックされたとき :: events hat
[all] 番目を [list v] から削除する
(2000年からの日数) を [list v] に追加する
(2000年からの日数) を [list v] に追加する
(2000年からの日数) を [list v] に追加する
    ︙ // 同じやつをたくさん
(2000年からの日数) を [list v] に追加する
を実行してlistを書き出してみると、同一フレーム内に行われた処理にも関わらず、後の処理に対応する値ほど大きく(=時間が後)になっていることがわかる。これは
@greenFlagがクリックされたとき :: events hat
[all] 番目を [list v] から削除する
リストに追加 // この定義は再描画しない

定義 リストに追加
(2000年からの日数) を [list v] に追加する
    ︙ // 同じやつをたくさん
(2000年からの日数) を [list v] に追加する
として、再描画しない定義の中で行っても同じ結果だった。

また、リストに入れられた値は、
8624.600163958334
8624.600163958334
8624.600163958334
8624.600163958334
8624.600163958334
8624.600163958334
8624.600163958334
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163969908
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163981482
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
8624.600163993056
と、飛び飛びになっており、それぞれの差は0.000000011574日~0.000000011575日とほぼ一定になる。
秒に直すと0.0009999936秒~0.00100008秒になり、2000年からの日数を使う際の最小単位は約0.001秒と分かる。日数なのにやたら細かい。

この仕様を使えば、
[時刻1 v] を ((2000年からの日数) * (1000000000000)) にする // でかくしてるのは、小数だと変数に入らないから
… // かかる時間を調べたい処理
[時刻2 v] を ((2000年からの日数) * (1000000000000)) にする
[処理にかかった秒数 v] を (([切り下げ v] \( (((時刻2) - (時刻1)) / (11574)) \)) / (1000000000)) にする
で処理にかかる時間を調べられる。
ちな、1フレームに行われるすべての処理にかかる時間が1/30秒を超えると処理落ちでFPSが下がる(当たり前)。

Last edited by popochan7890 (Aug. 13, 2023 00:53:47)

kinnniku_pi-mann
Scratcher
100+ posts

意外と知られていないテクニック集

うえの投稿で思いだしましたが、「中を見る」や、「プロジェクトページに移動する」ときはプログラムが一時的に止まるので、FPSを調べれば簡単に中を見たり、プロジェクトページに移動したりしたのを検知できる。また、中を見ているときは、プログラムに再描画をOFFにした繰り返すがある定義ブロックがあると、FPSが大きく下がるので、それを使えば、中を見たかどうかわかる。

あ、きんにくピーマンです。
RORIKONではなく、タココンなのでご注意を。
因みに男です。
どうでもいいですが、キャラクターをイ化したいと思ったことはありますか?(タコも受け付けてます。)
仕事が増えるのでURLは教えません。自分で探してくださいね。

Scratch短歌
質問に 答えるときは 投稿日 その後の投稿 必ずチェック(字余り)
inoking
Scratcher
1000+ posts

意外と知られていないテクニック集

popochan7890 wrote:

(2000年からの日数)
について。
~略~
と、飛び飛びになっており、それぞれの差は0.000000011574日~0.000000011575日とほぼ一定になる。
秒に直すと0.0009999936秒~0.00100008秒になり、更新の速さは知らんけど、2000年からの日数を使う際の最小単位は約0.001秒と分かる。日数なのにやたら細かい。
2000年からの日数は
ソースコード上、ミリ秒単位となっています(例えばこれ
ただ、実測してみるのは悪くないことだと思います。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
popochan7890
Scratcher
82 posts

意外と知られていないテクニック集

ソースコードを見ましたが、確かにミリ秒単位でした。というか実測の結果が合っててちょっとびっくり。Scratchをハックするのは色々発見があって面白いですね。
tomo8er
Scratcher
1 post

意外と知られていないテクニック集

⚑ がクリックされたとき
ずっと
タイマーをリセット
end
[ タイマー] > (0) のとき
ストップボタンが押された時になります。
popochan7890
Scratcher
82 posts

意外と知られていないテクニック集

ブロックパレットのカテゴリのアイコンを押すと滑らかにそのカテゴリの先頭までスクロールするが、PCやiPadのスペックが低いとき、ブロックの数が多くなったりしてエディタ画面が重くなるとスクロールに時間がかかる。
こんな時は、移動したいカテゴリ以外のアイコンを押し、スクロール中にすぐに移動したいカテゴリのアイコンを押すと高速でスクロールが完了する。

例えば制御カテゴリに行きたかったら、イベント→制御の順にタターンと(語彙力説明力)押すと速い。
些細なことだがかなりストレスが減る。
sakoppe
Scratcher
5 posts

意外と知られていないテクニック集

(10[ v] を (1(foo) 歩動かす) ずつ変える) 回繰り返す

end
簡単になめらかな動きができます
inoking
Scratcher
1000+ posts

意外と知られていないテクニック集

sakoppe wrote:

(10[ v] を (1(foo) 歩動かす) ずつ変える) 回繰り返す

end
簡単になめらかな動きができます
そのようなブロックは置けません。
動きを確認してから、正しい内容で投稿をお願いします。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている

Powered by DjangoBB