Discuss Scratch

takkun0530
Scratcher
100+ posts

質問コーナー3

ディスカッションフォーラムの投稿を削除するには、どうしたらいいですか?だれかおしえてください。
rinsora
Scratcher
7 posts

質問コーナー3

https://scratch.mit.edu/studios/17276418/activityというスタジオのプロジェクトが
最後まで見えないんですよ。
どうすると見えますか?
rinsora
Scratcher
7 posts

質問コーナー3

https://scratch.mit.edu/studios/17276418/activity
です。〈何でも入れてって言ったらどれだけ入るか検証!〉です。
sky_77
Scratcher
500+ posts

質問コーナー3

rinsora wrote:

https://scratch.mit.edu/studios/17276418/activity というスタジオのプロジェクトが、
最後まで見えないんですよ。
どうすると見えますか?
この作品(最後?)まで見えました。

環境情報を地球マーク(上の図参考)を押して教えてもらえませんか?
s-t-p
Scratcher
1000+ posts

質問コーナー3

takkun0530 wrote:

inokingさん(画像略)のように動くアイコンを作るには、どうしたらいいですか?
誰か教えてください。
一般的には、GIF(Graphics Interchange Format)と呼ばれる方法を使っています。
「GIFアニメ」で検索すると、出てきます。

Last edited by s-t-p (Aug. 22, 2019 04:54:47)

s-t-p
Scratcher
1000+ posts

質問コーナー3

takkun0530 wrote:

ディスカッションフォーラムの投稿を削除するには、どうしたらいいですか?だれかおしえてください。
投稿自体を削除することはできません。
(STが削除する以外)
ただ、投稿の内容を変更することが出来ます。
右下のeditを押してください。
sea-taro
Scratcher
82 posts

質問コーナー3

直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
kakurenbo
Scratcher
500+ posts

質問コーナー3

sea-taro wrote:

直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
まとめると、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

sea-taro wrote:

直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
つくってみた: https://scratch.mit.edu/projects/322647532/
スプライト2を参照。
ARATAKU
Scratcher
500+ posts

質問コーナー3

sea-taro wrote:

直線を引かずに任意の二点を結んだ直線上にスプライトが位置しているかどうかを判定できるようにしたいです。(座標のみ使うってことです)
誰か方法を教えてくださいお願いします
一方の点がもう一方の点まで移動しながら、スプライトに触れたか調べれば出来ます。
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

ARATAKU wrote:

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

KimiruHamiru wrote:

omegadrive wrote:

ライフの作り方について教えてください。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]>> なら
[ゲ一ムオ一バ一 v] を送る
end
これでできます。こうするとHPが2以上へってもできます

Last edited by haruharu9 (July 30, 2019 06:40:07)

matunyan0930
Scratcher
500+ posts

質問コーナー3

失礼します。
ぼうけんのしょ的なセーブデータを作成するときの暗号化についてアイデアとかヒントとかありますか?
セーブデータの改ざんを防止できる、解読難易度が高い(というか解読させたくない)、生成と読み込みが早い、セーブする内容によるとしても短い
の少なくともいずれか二つは達成したいです。
kakurenbo
Scratcher
500+ posts

質問コーナー3

matunyan0930 wrote:

失礼します。
ぼうけんのしょ的なセーブデータを作成するときの暗号化についてアイデアとかヒントとかありますか?
セーブデータの改ざんを防止できる、解読難易度が高い(というか解読させたくない)、生成と読み込みが早い、セーブする内容によるとしても短い
の少なくともいずれか二つは達成したいです。
僕は、そのデータ全てを掛けたり、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/
もし、書いてあることが起こらなかった場合、パソコンによる違いかもしれません。なにが原因かはまったくわかりません。そして、書いてある意味が伝わらなかったらすみません。

Last edited by Nao_kun (July 30, 2019 11:01:17)

SYOUI-2
Scratcher
100+ posts

質問コーナー3

takkun0530 wrote:

ディスカッションフォーラムの投稿を削除するには、どうしたらいいですか?だれかおしえてください。
報告と言う青い文字を押す→これをコピペする↓
I ask you to delete this post, I want to delete this post.

Last edited by SYOUI-2 (July 30, 2019 11:21:10)

sypu
Scratcher
500+ posts

質問コーナー3

SYOUI-2さん、回答がもう#566ででています。
また、

SYOUI-2 wrote:

Editと言う青い文字を押す→三回クリックする→これをコピペする↓
[color=#888888]「削除」[/color]
については、質問していることと違うと思います。
takkun0530さんが質問しているのは、投稿が無かったことにする、つまり、見えないようにするということだと思います。
takkun0530
Scratcher
100+ posts

質問コーナー3

sypu wrote:

SYOUI-2さん、回答がもう#566ででています。
また、

SYOUI-2 wrote:

Editと言う青い文字を押す→三回クリックする→これをコピペする↓
[color=#888888]「削除」[/color]
については、質問していることと違うと思います。
takkun0530さんが質問しているのは、投稿が無かったことにする、つまり、見えないようにするということだと思います。
そうです。
SYOUI-2
Scratcher
100+ posts

質問コーナー3

返信先 wrote:

#577
申し訳ありません、直しました。

Last edited by SYOUI-2 (July 30, 2019 11:22:47)

YY04
Scratcher
100+ posts

質問コーナー3

Nao_kun wrote:

アクションゲーム?を作るときに起きた出来事を、検証するために作成した作成したプロジェクトを公開します。
当たり判定に関する質問です。内容は作品のほうに書いてあります。どうか教えていただけますでしょうか。
(勘違いなどありましたらすみません。)
https://scratch.mit.edu/projects/322671003/
もし、書いてあることが起こらなかった場合、パソコンによる違いかもしれません。なにが原因かはまったくわかりません。そして、書いてある意味が伝わらなかったらすみません。
赤いスプライトのコスチュームを少しだけ小さくすると、うまくいきました。

Powered by DjangoBB