Discuss Scratch

Alicer0919
Scratcher
84 posts

質問コーナー4

#4879
([ v] \( [Sprite1 v] \))
これのことなら、scratch3.0の
([ステージ v] の [背景 v]  :: sensing)
みたいなやつです。
Poteto143
Scratcher
1000+ posts

質問コーナー4

ずっと
もし <[上向き矢印 v] キーが押された> なら
[移動速度 v] を (1) ずつ変える
end
y座標を (移動速度) ずつ変える
[移動速度 v] を ((移動速度) * (0.9)) にする
end
スプライトの移動に緩急を付けるときに上の様なスクリプトを組むときがあるのですが、ここでいう「移動速度」が取り得る最大の値を求める方法はありますか?

Last edited by Poteto143 (Feb. 23, 2021 13:23:12)

soutamamapapa
Scratcher
100+ posts

質問コーナー4

そのままだと、正の無限大に発散してしまうと思います。
「移動速度を( 移動速度 * 0.9 )にする」
ということなら、
+1と*0.9が釣り合う10が最大値になると思います。

Last edited by soutamamapapa (April 5, 2021 01:07:01)

Poteto143
Scratcher
1000+ posts

質問コーナー4

#4884
間違えてました。元の投稿は編集しました。
ちなみに、同じブロックで試したら最大値が9になりました。。。
00giri
Scratcher
1000+ posts

質問コーナー4

値を調べる位置が繰り返しの一番下であれば9になりますが、座標が変化する時点だと10になります(*0.9をされる前なので)。
Poteto143
Scratcher
1000+ posts

質問コーナー4

ああ、なるほど、そういうことですね。
Poteto143
Scratcher
1000+ posts

質問コーナー4

#4883
自己解決しました。
以下の方程式を元に算出できるみたいです。
加速力を実数a 減速力を実数b(0≦b<1) 最大値をxとする
a, b は定数とする

xは、xをa分増やしてbをかけた数に等しいので
x = b(x + a)

展開して
x = bx + ba

bxを移項して
x - bx = ba

左辺をxでまとめて
x(1 - b) = ba

両辺を(1 - b)で割って
x = ba / (1 - b)
inoking
Scratcher
1000+ posts

質問コーナー4

式で書くと、
係数を k (ここでは 0.9)、足しこむ値を a (ここでは 1)、一定となった時の速さを v とすると
v = (v + a)k
∴v = k/(1 - k) * a
ですね。

あ、モロかぶり。。。

Last edited by inoking (Feb. 23, 2021 14:16:56)

katiku-
Scratcher
26 posts

質問コーナー4

もし <[端] に触れた> なら 



でなければ
(10) 歩動かす
end



もし <<[端] に触れた> ではない> なら
(10) 歩動かす
end

ではどちらの方が処理が早いですか?
tsumuri3
Scratcher
1000+ posts

質問コーナー4

anbe---
Scratcher
36 posts

質問コーナー4

mitaku115 wrote:

いやー質問コーナー4、出来ましたね。
質問としてはなんですが 
(言語)
というブロックってどうやって使うんですか?
自分のpcの言語を表示します
abee
Scratcher
1000+ posts

質問コーナー4

それは、去年の8月の質問で、すでに答えが出ています。PCの言語ではありません。
doraemon-yu
Scratcher
100+ posts

質問コーナー4

セーブコードの作り方を教えてください
kensin3050
Scratcher
100+ posts

質問コーナー4

滅茶苦茶長い文字列を作り、その何文字目は〇〇のデータ、何文字目は△△のデータ…と振り分ければ出来ると思います。
例えば「レベル」という変数と「金」という変数があるなら、
「レベル」の数値と「金」の数値を組み合わせて(足す訳じゃない)セーブコードを作り、コードをロードする時は特定番目の数字を「レベル」や「金」にします。
文章では簡単そうですが、実際かなり難しいです。
まず「レベル」が12で、「金」が345だとしましょう。
そしてコードをロードする時は一文字目と二文字目を「レベル」にし、三文字目から五文字目を「金」とします。
この時セーブコードは「12345」となり、一文字目と二文字目は「1」と「2」なのでこれを組み合わせれば「レベル」が「12」となり、同じ要領で三文字目から五文字目も組み合わせれば「金」が「345」となるので正しく復元出来ます。
しかしもし「レベル」が「1」だったらどうなるでしょうか。
この時のセーブコードは「1345」となり、先程と同じ方法でやると「レベル」が「13」、「金」が「45」となり、正しく復元できません。
これを解決するには、セーブコードを作る時に「もしレベルが一桁であれば、最初に0を追加する」プログラムを組めばいい訳です。
これならセーブコードは「01345」となり、正しく復元出来ます。
セーブコードは工夫次第で何個ものデータを保存出来たり、データ改ざんによる不正に対するセキュリティを上げたり出来るので、試行錯誤を繰り返して頑張ってみてください。
inoking
Scratcher
1000+ posts

質問コーナー4

#4890:
検証結果を こちら に投稿しました。
eitabo
Scratcher
4 posts

質問コーナー4

scratchの作品の説明欄やプロフィールに自分のtwitterやyoutubeなどのURLは貼っていいのでしょうか?
してる人もいますが不安で…
inoking
Scratcher
1000+ posts

質問コーナー4

個人のアカウント情報に当たるものは Scratch で公開してはいけません。
コミュニティーガイドライン の以下に反します。
個人情報を公開しないこと。
安全上の理由から、個人情報を公開しないでください。これには、苗字や電話番号、住所、電子メールアドレス、適切に管理されていないチャットのあるWebサイトやSNSへのリンクなどが含まれます。
直接アドレスなどが書かれていなくても個人的に連絡が取ることを可能にするようなものはすべてダメです。
もし見つけたら無言で報告してください。
MoonbeamGames
New Scratcher
1 post

質問コーナー4

自分で調べようとしてもGoogleに出てこないので質問します。よければどなたか調べていただけると助かります。
scratch内で使用していいサイトとダメなサイトを教えて下さい。
tako-mimi
Scratcher
13 posts

質問コーナー4

クローン同士の距離を調べて,さらにすべてのクローンの中から一番近くにいるクローンを検出することはできますか?
00giri
Scratcher
1000+ posts

質問コーナー4

リストにクローンの位置を保存し、三平方の定理を使って距離を求めることでできます。

Powered by DjangoBB