Discuss Scratch
- Discussion Forums
- » 日本語
- » 質問コーナー3
- rinsora
- Scratcher
7 posts
質問コーナー3
https://scratch.mit.edu/studios/17276418/activity
です。〈何でも入れてって言ったらどれだけ入るか検証!〉です。
です。〈何でも入れてって言ったらどれだけ入るか検証!〉です。
- sky_77
- Scratcher
500+ posts
質問コーナー3
https://scratch.mit.edu/studios/17276418/activity というスタジオのプロジェクトが、この作品(最後?)まで見えました。
最後まで見えないんですよ。
どうすると見えますか?
環境情報を地球マーク(上の図参考)を押して教えてもらえませんか?
- s-t-p
- Scratcher
1000+ posts
質問コーナー3
一般的には、GIF(Graphics Interchange Format)と呼ばれる方法を使っています。 inokingさん(画像略)のように動くアイコンを作るには、どうしたらいいですか?
誰か教えてください。
「GIFアニメ」で検索すると、出てきます。
Last edited by s-t-p (Aug. 22, 2019 04:54:47)
- s-t-p
- Scratcher
1000+ posts
質問コーナー3
投稿自体を削除することはできません。 ディスカッションフォーラムの投稿を削除するには、どうしたらいいですか?だれかおしえてください。
(STが削除する以外)
ただ、投稿の内容を変更することが出来ます。
右下のeditを押してください。
- sea-taro
- Scratcher
82 posts
質問コーナー3
直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
誰か方法を教えてくださいお願いします
- kakurenbo
- Scratcher
500+ posts
質問コーナー3
まとめると、 直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)3つの点が同一線上にある。ということですよね。
誰か方法を教えてくださいお願いします
任意の点(x1,y1)と(x2,y2)、判定の対象の点(p,q)
があるとします。
その3つが同一線上にあるなら、
(y1 - y2) * (p - x1)
と
(q - y1) * (x1 - x2)
が等しい。つまり、
(y1 - y2) * (p - x1) = (q - y1) * (x1 - x2)
となるので、それを利用すればいいと思います。
補足:線分のみの衝突の場合は、
p,qが、x座標、y座標のそれぞれの間にあるか調べればいいでしょう。
if(max(x1,x2) >= p && p >= min(x1,x2)
&& max(y1,y2) >= q && q >= min(y1,y2))
Last edited by kakurenbo (July 30, 2019 04:55:56)
- apple502j
- Scratcher
1000+ posts
質問コーナー3
つくってみた: 直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)https://scratch.mit.edu/projects/322647532/
誰か方法を教えてくださいお願いします
スプライト2を参照。
- ARATAKU
- Scratcher
500+ posts
質問コーナー3
一方の点がもう一方の点まで移動しながら、スプライトに触れたか調べれば出来ます。 直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
kakurennboさんの方法だと、計算を使うので、すぐに求めることが出来ますが、当たり判定が小さすぎるという欠点もあります。
ちなみに、あってるかは知りませんが、一応僕も式を立ててみました。
任意の点 1 : (x,y) 任意の点 2 : (x',y') 判定対象の点 : (p,q) (数学的に書き方を間違っていたらすみません)
( y - y' ) / ( x - x' ) = ( y - q ) / ( x - p ) 範囲 ( x <= p <= x' ) なら線上にある。
当たり判定を広げるならもう少しだけ複雑な式がいると思います。
- kakurenbo
- Scratcher
500+ posts
質問コーナー3
なるほど! kakurennboさんの方法だと、計算を使うので、すぐに求めることが出来ますが、当たり判定が小さすぎるという欠点もあります。
ちなみに、あってるかは知りませんが、一応僕も式を立ててみました。
任意の点 1 : (x,y) 任意の点 2 : (x',y') 判定対象の点 : (p,q) (数学的に書き方を間違っていたらすみません)
( y - y' ) / ( x - x' ) = ( y - q ) / ( x - p ) 範囲 ( x <= p <= x' ) なら線上にある。
当たり判定を広げるならもう少しだけ複雑な式がいると思います。
確かに僕の方法で作ってみたのですが、斜め等は厳しいですね…
Last edited by kakurenbo (July 30, 2019 05:31:27)
- haruharu9
- Scratcher
100+ posts
質問コーナー3
また、「ライフの作り方」というとすごくいろいろなコードの書き方ができるので、 ライフの作り方について教えてください。0になった後ゲームオーバーになりません
回答もいろいろな想定で、いろいろな答え方ができて、幅ができてしまうのですが、
https://scratch.mit.edu/projects/314433677/
で「0になった後ゲームオーバーになりません」
という問題についてであれば、⚑ がクリックされたときの、
[ライフ] を [5] にする
もし <[ライフ] = [0]> なら
[ すべて] を止める
endもし <[ライフ] = [0]> ならの判断が、
end
「ライフが5になった直後に1回だけ実行される」
つまり、
「判断ブロックだけど繰り返すブロックではない」ので「この場合、何もせずブロックを抜けてしまう」
つまり、
「ゲーム進行中には、この判断ブロックが実行されていない」
というのが、うまくいかない理由です。
1回だけで抜けるのが問題なので、
「もし」の判断を「ずっと」繰り返す、というのが、わりと定番の対策です。
が、個人的には「ずっと」とか「すべてを止める」は
強力すぎて細かい処理が書きにくい
とか
「ずっと」が何本動いているとどの変数がどのタイミングどの順序で変化する可能性があるか頭がついていかない
とか
思うので、⚑ がクリックされたときなどと書くのが好きです。
[ライフ] を [5] にする
<[ライフ] = [0]> まで待つ
[ゲームオーバー] を送る
細かいことを言えば、「ライフを減らす処理」の書き方によっては「崖下に落ちた!と同時に溶岩に突っ込んだ!」とか、「ライフが0を通り越してー1になったりするコード(つまりライフ=0にならない)」を書いてしまう可能性もあるので、
「ライフ=0」という条件を「ライフ>0でない」と書きかえる
とか、工夫が必要になってくることもあるかも知れません。
もし <<(HP) = [0]> または <(HP) < [0]>> ならこれでできます。こうするとHPが2以上へってもできます
[ゲ一ムオ一バ一 v] を送る
end
Last edited by haruharu9 (July 30, 2019 06:40:07)
- matunyan0930
- Scratcher
500+ posts
質問コーナー3
失礼します。
ぼうけんのしょ的なセーブデータを作成するときの暗号化についてアイデアとかヒントとかありますか?
セーブデータの改ざんを防止できる、解読難易度が高い(というか解読させたくない)、生成と読み込みが早い、セーブする内容によるとしても短い
の少なくともいずれか二つは達成したいです。
ぼうけんのしょ的なセーブデータを作成するときの暗号化についてアイデアとかヒントとかありますか?
セーブデータの改ざんを防止できる、解読難易度が高い(というか解読させたくない)、生成と読み込みが早い、セーブする内容によるとしても短い
の少なくともいずれか二つは達成したいです。
- kakurenbo
- Scratcher
500+ posts
質問コーナー3
僕は、そのデータ全てを掛けたり、sin取ったしてぐちゃぐちゃにしたものを 失礼します。
ぼうけんのしょ的なセーブデータを作成するときの暗号化についてアイデアとかヒントとかありますか?
セーブデータの改ざんを防止できる、解読難易度が高い(というか解読させたくない)、生成と読み込みが早い、セーブする内容によるとしても短い
の少なくともいずれか二つは達成したいです。
一緒にいれて暗号文に混ぜて置いたり、その計算やデータの中に
(2000年からの日数)等の常に変わるものやユーザーが指定できる数字等を[キー]として入れたりしてます。
復号の時に、それを逆算するようにすればOKです。
例)
面,リスポーンx,リスポーンy,現x,現y,[キー]の二乗,ぐちゃぐちゃにしたやつ
3,0,0,-217,45,4096,-41385984,
ぐちゃぐちゃにする処理ですが、ただ単に全部掛け算しただけだと、
一つでもが0になると、答えが0になってしまうので、そうならない様に注意が必要です。
それと、切り捨てる等して小数が出ない様にした方がいいです。
どんな暗号法にも、暗号化・復号するプログラムは存在してしまうので、
目立たないところにサラッと置いたりするとよいでしょう。
因みに、署名欄のオススメ作品(アスレメーカー)にもその方法を使っています。
サンプルコースのセーブにその方法を使用しています。この機能使う人が余りいないのは秘密。
データを改ざん(ステージを進める等)したりすると、警告が出て読み込めない様になっています。
この作品は、キーに2000年からの日数を少しいじったものを使用していますが、
ユーザーが指定できる様にしてもいいと思います。
頑張って下さい!
- Nao_kun
- Scratcher
500+ posts
質問コーナー3
アクションゲーム?を作るときに起きた出来事を、検証するために作成した作成したプロジェクトを公開します。
当たり判定に関する質問です。内容は作品のほうに書いてあります。どうか教えていただけますでしょうか。
(勘違いなどありましたらすみません。)
https://scratch.mit.edu/projects/322671003/
もし、書いてあることが起こらなかった場合、パソコンによる違いかもしれません。なにが原因かはまったくわかりません。そして、書いてある意味が伝わらなかったらすみません。
当たり判定に関する質問です。内容は作品のほうに書いてあります。どうか教えていただけますでしょうか。
(勘違いなどありましたらすみません。)
https://scratch.mit.edu/projects/322671003/
もし、書いてあることが起こらなかった場合、パソコンによる違いかもしれません。なにが原因かはまったくわかりません。そして、書いてある意味が伝わらなかったらすみません。
Last edited by Nao_kun (July 30, 2019 11:01:17)
- SYOUI-2
- Scratcher
100+ posts
質問コーナー3
報告と言う青い文字を押す→これをコピペする↓ ディスカッションフォーラムの投稿を削除するには、どうしたらいいですか?だれかおしえてください。
I ask you to delete this post, I want to delete this post.
Last edited by SYOUI-2 (July 30, 2019 11:21:10)
- takkun0530
- Scratcher
100+ posts
質問コーナー3
#566ででています。そうです。 SYOUI-2さん、回答がもう
また、については、質問していることと違うと思います。 Editと言う青い文字を押す→三回クリックする→これをコピペする↓[color=#888888]「削除」[/color]
takkun0530さんが質問しているのは、投稿が無かったことにする、つまり、見えないようにするということだと思います。
- YY04
- Scratcher
100+ posts
質問コーナー3
アクションゲーム?を作るときに起きた出来事を、検証するために作成した作成したプロジェクトを公開します。赤いスプライトのコスチュームを少しだけ小さくすると、うまくいきました。
当たり判定に関する質問です。内容は作品のほうに書いてあります。どうか教えていただけますでしょうか。
(勘違いなどありましたらすみません。)
https://scratch.mit.edu/projects/322671003/
もし、書いてあることが起こらなかった場合、パソコンによる違いかもしれません。なにが原因かはまったくわかりません。そして、書いてある意味が伝わらなかったらすみません。