Scratchでアクションゲーム制作をしてみる その3「ジャンプ」1回目。

Scratchでアクションゲーム制作をしてみる その3「ジャンプ」1回目。

はい。第三回目となる今回は、
前回に引き続き「移動」・・・のうち、「ジャンプ」について遊びながら学んでいきます。
ジャンプは「なんとなく算数とか数学の知識が要るのでは?」と一見難しそうにも見えますが、簡単なものであれば大したことはないです。

今回から複数回に分けて、ジャンプについてみていきます。

 

■まず最初に「重力」を加える

じゃ、前回同様にまずはさくっと作ってみましょう。

月の重力みたいなまろやかさ。

とりあえず重力を足してみました。

これでこのネコ君はこの先、重力に逆らう事が出来ず、常に落下する運命にあります。

 

■ジャンプの定義と足場づくり

「ジャンプ」を作るにあたって、いろんな作り方があるわけですが、

今回は以下3点に着目して作成してみます。

  1. 下に何も無ければ落ちる。
  2. 足場があれば、落ちない。
  3. ジャンプボタンが押されたら、上昇して、離せばまた落ちる。

 

先程の流れで、1番が出来たわけですね。

 

では、次に「足場」の概念を加えてみましょう。

ブロックというスプライトを追加して、ネコ君に「もし」ブロックを加えましょう。

「ブロック」・・・要するに足場を用意しました。

「足場があれば、落ちない」

 

なんだかゲームっぽさの片鱗を感じますね。ワクワクしてきました。

 

■ゲームエンジンを作成する

更に改造していきます。

ゲームエンジン(非表示)のスプライトを足して、こいつになんやかんや管理してもらうことにしました。

「ネコのプログラムはネコに関する事」「ブロックのプログラムは単一のブロックに関する事」で完結したいので、

「全体でブロックをいくつ作るか、どう並べるか」なんていうのはこのエンジンってやつに任せるようにしましょう。

エンジン側のプログラム。今回はエンジンに「ブロックのクローン」を作ってもらいます。

なんでまた直接スプライトを使わず、「クローンを作る」のかというと、

今回のこの作り方だと、「ブロック(というスプライト)に触れたなら」を使っちゃってる為。

他のやり方としては、ブロック側に「ネコが触れたか」という変数を持たせて、メッセージを発信させてもよいかも。

ただ今この瞬間は「ネコの動きを制御する」のは「エンジン」じゃなくて「ネコ側のプログラム」であってほしいなと思うので、今回はこのようにしました。

ブロック側のプログラムはこんな感じ。

なんか落下中に動かすと謎の引っかかりをしますが、できました。

落下途中ブロックに引っかかって止まるのは気になるけども、とりあえず出来ました。

  1. 下に何も無ければ落ちる。
  2. 足場があれば、落ちない。
  3. ジャンプボタンが押されたら、上昇して、離せばまた落ちる。

このうち、「1」と「2」が出来たわけですねー。

 

■ジャンプ機能の追加

さて・・・いよいよジャンプも追加してみましょー。

多分こんな感じのブロックを使うのではと予想しながら、ジャンプ力という変数も追加しながら、部品を作ってみる。

ジャンプボタンを押したら

「”ジャンプ力”が瞬間的に高まる!」

「”ジャンプ力”はどんどん衰えて、最後は0になっちゃう」

「”ジャンプ力”があるうちは、猫は上昇する!(でも重力もあるので、”ジャンプ力”が足りなくなると落ちていく)」

こんな仕組みですね。加速度の上下版です。

 

 

前回のダッシュのプログラムに組み込んでみます。

ながーい

じゃあ、わくわくしながら、早速いってみましょー!

 

コイツ、ジャンプ力半端ねぇな

 

なんか・・・「押しっぱなし」だと、無限に上昇します。

こういうゲームあるけど求めてるのはそうじゃないッ・・・!!!

 

・・・まぁでもこういうのを利用した「避けゲー」はこうして作ればいいんだなとも学んだので今回はよしとします。

※気球操るゲームとか出来そうですね

 

他にも色々と気になるところがあるので、次回はその辺を修正していきましょ。

・重力弱すぎ問題

・ブロック引っかかり問題

このへんですねー。

 

 

というわけで今日はここまで。

 

・・・実は上の二つの問題、もう解決してるんですが、一旦記事長いので分けます。

ゲームはこちら。FLASH入ってると動かせます。改造もしていいです。

改造したい方、中身見たい方はこちらをクリック