お久しぶりです!

今回は1P・2P対戦ができる、ビシバシゲームを作ってみましょう。

MELT! https://scratch.mit.edu/projects/48858594/
WS0000

キーボードのADとJLを使って、交互に連打するゲームです。
2人ですると狭いので、ゲームパッドコンバーターなどをつかって
プレステのコントローラでプレイするのもいいかもしれません。 

ではさっそく「中を見る」でプログラムを確認してみましょう。

↓↓続きを読む↓↓ をご覧ください 
 

各パーツの準備をしよう

1P・2Pで使用するキャラクターを準備しましょう
WS0001
今回のゲームは「MELT!(溶かせ!)」というゲームなので
連打していくと、キャラクターがドロドロととけていきます。

オリジナルゲームの場合は、たとえばだんだん色が変わるとか
アニメーションをするなどの演出を考えてみて下さい。
WS0002
 ネコのとけていくアニメーションは10段階あります。
(段階は自由に変更してください)

コスチュームのお絵描きモードの
WS0003
 「形を変える」ツールをつかえば

WS0004
こんなふうに○部分をマウスでドラッグするだけで
カタチを変えることができます。 
この機能をつかって溶けていくネコを作っているんですね。 

あとは、1P・2Pモードを選ぶためのボタンや
連打するキーが分かるように表示する画像も、追加して下さい。
(しょうりゃくしてもOK)


連打を判定するには?

キーが押されたときにカウントを1増やす場合 どんなプログラムを思い浮かべますか?
たとえばこんなプログラムだとどうでしょうか?

WS0005
 これで試してみて下さい。
をおしてAキーを1回押してみると・・・

WS0006
カウンター1とでてほしいところが、こんなにも加算されてしまいました。
これは、ボタンを押している間ずっとカウンターの値が加算されつづけているからです。
人間には一瞬のことでも、コンピュータが判定すると
こんなにもループしてしまうのです。 

キーを1回押した時に、カウンターを1増やしたい時は
「キーが押されて、離されたときに1増やす」方法や
「ウェイトを使う」方法や
「イベント」の「○キーが押されたとき」を使う方法などがあります。


今回のゲームで使う方法は
フラグでキーの状態を判定する方法です。
WS0007
 フラグの役わりをもつ ButtonPress1(ボタン押した) の変数には0か1が入ります。
AとDを交互に連打するので
Aでフラグ1・Dでフラグ0にします。

Aを押した瞬間にフラグが1になるので、Dキーを押されるまで
再びAキーでカウントがふえることはありません。
同時押しを避けるために、AとDが同時に押されたときはスコアを-1します。

2Pもプログラムは同じで、
キーの部分が「」と「」になっています。

カウンターで溶け具合を判定

さて、キー連打でカウンターの値が増えるようになりましたので
カウンターが進むにつれてキャラクターのコスチュームが変わるようにしましょう。

WS0009
さきほどのmessage1の続きです。
MELT1がプレイヤー1のカウンターです。

カウンターの値をこのように段階的に判定して
その段階におうじたコスチュームに変更しています。
99以上になったら1Pの勝ちです。 

2Pもプログラムは同じで
MELT2のカウンターが99以上になったら2Pの勝ちになります。


色々な対戦ゲームを作ろう

キー判定はいくつでもできますので
左側のキーを1P、右側のキーを2Pに設定すれば
色々な対戦ゲームを作ることができます。

たとえば
https://scratch.mit.edu/projects/10067410/
WS0010
 ネコと犬がお互いに打ち合うシューティングのようなゲームとか

https://scratch.mit.edu/projects/48120868/
WS0011
クイズゲームならCOMとの対戦もカンタンにつくることができます。

https://scratch.mit.edu/projects/48120868/
WS0012
ピコボードと、PCのキーボードで対戦することもできます。

シンプルなゲームでも対戦ゲームだと盛り上がりますね。
色々なゲームを作って、お友達と対戦してみて下さい。


この記事がよかった!という方は「B!」ボタンや
こちらのボタンを押していただけると元気がでます!