Discuss Scratch
- Discussion Forums
 - » 日本語
 - » 質問コーナー3
        
         
- sky_77
 - 
                            
						
						
                            Scratcher
                        
						
						 
500+ posts
質問コーナー3
どうもdaijitenkunです。この回答では不十分ということですか?
質問なのですがアクションゲームの壁や床の当たり判定のプログラムが分かりません。教えて下さい。
別の色にしなくても判定する方法はあります。
- takkun0530
 - 
                            
						
						
                            Scratcher
                        
						
						 
100+ posts
質問コーナー3
先ほどは失礼しました。
では質問をさせていただきます。
オンラインゲームを作りたいと思っているのですが、オンラインにする方法がわかりません。優しい方教えてください。
(☁ score)(クラウド変数)を使います。
- T-taku
 - 
                            
						
						
                            Scratcher
                        
						
						 
1000+ posts
質問コーナー3
クラウド変数を使う、ということだけじゃなくてそこをどうするかを考えるのがScratchの面白さです。
どのようにブロックを組むのかも書いたほうがいいんじゃないのでしょうか?
いちいちプログラムまで書かれていては、質問者が考えなくなってしまいます。
- T-taku
 - 
                            
						
						
                            Scratcher
                        
						
						 
1000+ posts
質問コーナー3
ゲームにセーブ機能を付けるのであればそれはオンラインとはまた違うのではないでしょうか。
この作品が参考になるかと。
オンラインゲームはセーブ機能のことではありませんよ?すみません。
代わりと言ってはなんですが、
シンプルでわかりやすい作品を見つけましたのでURLを載せときます(作り方の説明ではないのでご注意を):
https://scratch.mit.edu/projects/287059354/editor/
- KimiruHamiru
 - 
                            
						
						
                            New Scratcher
                        
						
						 
500+ posts
質問コーナー3
オンラインゲームを作りたいと思っているのですが、オンラインにする方法がわかりません。優しい方教えてください。「オンラインゲーム」という言葉の解釈にもよると思いますが、
たぶんhei24さんが想像しているようなものであれば、すでに指摘があるように「クラウド変数」を使うのは必須です。
個人的には(New Scratcherなので)クラウド変数は使ったことがないので想像というか妄想ですが、
たとえば新規作成したプロジェクトのネコに、
このスプライトがクリックされたときみたいなコードを書いて、
変数[変数 v] を表示する
[変数 v] を (1) ずつ変える
ブラウザのウィンドウを2つ開いて、
それぞれで同じプロジェクトをプロジェクトページで表示、それぞれでネコをクリック。
すると、それぞれのウィンドウで、変数が別々に1つずつ増えていくかと思います。
当たり前のようですが、この「別々に」という点は、「オンライン化とは何か」を考える上で重要です。
これと同じことを、クラウド変数を使ってやった場合、つまり、
このスプライトがクリックされたときみたいなコードを書いて、
変数[☁ 変数 v] を表示する
[☁ 変数 v] を (1) ずつ変える
ブラウザのウィンドウを2つ開いて、
それぞれで同じプロジェクトをプロジェクトページで表示、それぞれでネコをクリック。
すると、増え方が変化するんじゃないかと思います。(リアルタイムに変化するかは確認できませんが)少なくとも「2つのウィンドウ上の変数の変化が影響しあう」ようになるんじゃないかと思います。
クラウド変数に関する私の想像が正しければ、これで「オンライン・マルチプレイヤー・クリッカーゲーム」の完成です(半分冗談ですが意味はあってると思います。ロジックが間違ってたら訂正してください)。
この「2つのブラウザウィンドウ」は、1台のPC上で動かす必要は全然なくて、もう一人が隣の席にいても地球の裏側にいても、同じプロジェクトを開けてさえいれば関係ありません。
(サーバ性能や設定次第では)同じコードで、3000人同時アクセスで協力して変数を増やすこともできます(とはいえ、サーバ性能や設定次第なのでたぶんできません)。
hei24さんは既にNew ScratchrではなくScratcherのようですし、
共有されているプロジェクトを見る限り変数も使えているようなので、
「オンラインゲーム化」に関して必要な知識はこれだけと思います。
あとは、
・この「☁変数」を、「何に使うと楽しいか」
・この「☁変数」は、「どうすればうまく使えるか」
といった問題です。
「何に使うか」の例として、たぶん楽なのはハイスコアの記録です。シューティングゲームなどでは「ワールドハイスコア」が記録されることをもって「オンライン対応ゲーム」とかいうものもあったと思います。
スプライトの座標値の管理とかキー入力内容とかに使うとマルチプレイアクションになるかも知れません。
「うまく使う」のは結構難しいようです。「サーバ性能や設定」による制限については、実際に使ってみて試していく必要があります。変数のサイズ、1プロジェクト辺りの変数の個数、同時アクセス可能数、更新速度、入れられる値の種類など、むちゃくちゃ厳しい制約があります。現在あるオンラインゲームはそういった制約をうまく潜り抜けて作られています(多分)。クラウド変数自体に慣れてきて「もっとうまくやるには」と感じ始めたら改めて質問したらよいかと思います。
制限は、「サーバ管理やコミュニティ運営をしている人のお金」の都合から来てるというのが私の理解なので、ある日突然、制限がゆるくなったり、逆にもっと厳しくなったり、ということがあるかと思います。
- AnkoChannel
 - 
                            
						
						
                            Scratcher
                        
						
						 
54 posts
質問コーナー3
ドラゴンが、ビームにふれてもドラゴンがきえません。どうしたらいいでしょうか?
⚑ がクリックされたとき
ずっと
もし <[ビーム v] に触れた> なら
隠す
end
end
でどうでしょう?
- nyan526
 - 
                            
						
						
                            Scratcher
                        
						
						 
100+ posts
質問コーナー3
https://scratch.mit.edu/projects/323410113/ のことなのですが、どうすればもう少し簡単なプログラムにできますか?
                        
                        
                    - hei24
 - 
                            
						
						
                            Scratcher
                        
						
						 
9 posts
質問コーナー3
jumpをするというプログラムで、上にあがるときはだんだん上に上がるスピードが遅くなる、したに落ちるときは、だんだん速くなる、というのにはどのようなプログラムをするといいですか?
                        
                        
                    - sky_77
 - 
                            
						
						
                            Scratcher
                        
						
						 
500+ posts
質問コーナー3
jumpをするというプログラムで、上にあがるときはだんだん上に上がるスピードが遅くなる、したに落ちるときは、だんだん速くなる、というのにはどのようなプログラムをするといいですか?重力を考慮したジャンプが参考になるかもしれません。
- foo-eta
 - 
                            
						
						
                            Scratcher
                        
						
						 
1000+ posts
質問コーナー3
こんな感じでしょうか。
                        
                        
                    ずっと
もし<ジャンプをする>なら
[ ジャンプ力v] を [-10] にする
end
y座標を (ジャンプ力) ずつ変える
もし<地面に触れた>なら
y座標を ((ジャンプ力) * (-1)) ずつ変える
end
[ジャンプ力 v] を (1) ずつ変える
end













