Discuss Scratch
- Discussion Forums
- » 日本語
- » 質問コーナー4
- 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が最大値になると思います。
「移動速度を( 移動速度 * 0.9 )にする」
ということなら、
+1と*0.9が釣り合う10が最大値になると思います。
Last edited by soutamamapapa (April 5, 2021 01:07:01)
- 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
ですね。
あ、モロかぶり。。。
係数を 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
ではどちらの方が処理が早いですか?
- anbe---
-
Scratcher
36 posts
質問コーナー4
いやー質問コーナー4、出来ましたね。自分のpcの言語を表示します
質問としてはなんですが(言語)というブロックってどうやって使うんですか?
- kensin3050
-
Scratcher
100+ posts
質問コーナー4
滅茶苦茶長い文字列を作り、その何文字目は〇〇のデータ、何文字目は△△のデータ…と振り分ければ出来ると思います。
例えば「レベル」という変数と「金」という変数があるなら、
「レベル」の数値と「金」の数値を組み合わせて(足す訳じゃない)セーブコードを作り、コードをロードする時は特定番目の数字を「レベル」や「金」にします。
文章では簡単そうですが、実際かなり難しいです。
まず「レベル」が12で、「金」が345だとしましょう。
そしてコードをロードする時は一文字目と二文字目を「レベル」にし、三文字目から五文字目を「金」とします。
この時セーブコードは「12345」となり、一文字目と二文字目は「1」と「2」なのでこれを組み合わせれば「レベル」が「12」となり、同じ要領で三文字目から五文字目も組み合わせれば「金」が「345」となるので正しく復元出来ます。
しかしもし「レベル」が「1」だったらどうなるでしょうか。
この時のセーブコードは「1345」となり、先程と同じ方法でやると「レベル」が「13」、「金」が「45」となり、正しく復元できません。
これを解決するには、セーブコードを作る時に「もしレベルが一桁であれば、最初に0を追加する」プログラムを組めばいい訳です。
これならセーブコードは「01345」となり、正しく復元出来ます。
セーブコードは工夫次第で何個ものデータを保存出来たり、データ改ざんによる不正に対するセキュリティを上げたり出来るので、試行錯誤を繰り返して頑張ってみてください。
例えば「レベル」という変数と「金」という変数があるなら、
「レベル」の数値と「金」の数値を組み合わせて(足す訳じゃない)セーブコードを作り、コードをロードする時は特定番目の数字を「レベル」や「金」にします。
文章では簡単そうですが、実際かなり難しいです。
まず「レベル」が12で、「金」が345だとしましょう。
そしてコードをロードする時は一文字目と二文字目を「レベル」にし、三文字目から五文字目を「金」とします。
この時セーブコードは「12345」となり、一文字目と二文字目は「1」と「2」なのでこれを組み合わせれば「レベル」が「12」となり、同じ要領で三文字目から五文字目も組み合わせれば「金」が「345」となるので正しく復元出来ます。
しかしもし「レベル」が「1」だったらどうなるでしょうか。
この時のセーブコードは「1345」となり、先程と同じ方法でやると「レベル」が「13」、「金」が「45」となり、正しく復元できません。
これを解決するには、セーブコードを作る時に「もしレベルが一桁であれば、最初に0を追加する」プログラムを組めばいい訳です。
これならセーブコードは「01345」となり、正しく復元出来ます。
セーブコードは工夫次第で何個ものデータを保存出来たり、データ改ざんによる不正に対するセキュリティを上げたり出来るので、試行錯誤を繰り返して頑張ってみてください。
- 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内で使用していいサイトとダメなサイトを教えて下さい。
scratch内で使用していいサイトとダメなサイトを教えて下さい。













