AREA 021
Featuring AlphaScript

LEVEL 3 ボタン1つで何かが動く

 

このステップで、いよいよインタラクティブ性、 つまり 「ユーザーの操作に応じて変化する要素」 が登場します。  これができれば、目標としている「ゲーム」にぐんと近づくはずです。


何をしたい?

まず、ユーザーの操作によってどんなことを起こすのか、を考えなければなりません。  まあ、ゲームを作るならそれぐらいはじめから考えとけって感じですが、その辺は置いときまして...。  とにかく、主人公はひよこなのですから、やはりそれを動かすのが普通です。 (というか、今のところひよこ以外のものが存在しませんから(笑))  また、なるべく単純なゲームを作りたいと思いますので、ワンキーゲーム(ボタンをひとつしか使わないゲーム)にすることにします。

では、ボタンを押したらひよこには何をさせればよいでしょうか?  今のひよこはただ歩くだけなので・・・はっきり言って、あまり選択肢はないですね。  ということで、「ジャンプ」できるようにします。


万有引力

ジャンプを作るためには、重力がなければなりません。  もしなかったら、ボタンを1回押しただけで、ひよこがどんどん上昇していってしまいます。  同時に、足場となる「地面」も必要です。  これがないと、ひよこはあっという間に画面下へと消えてしまいます。(そして永遠に落ち続けます・・・)

といっても、これはそれほど難しいことではないです。  ひよこのY座標の速度を表す変数を用意し、それを常に加算していけばよいのです。(これが重力になります)  そして、Y座標にその速度分を加算し、その結果ある位置よりも下にきたらそこで止めるようにします。(この位置が地面になります)  ただし、速度を加算し続けると無限に加速してしまうので、最高落下速度を決めて、それより大きくならないようにしておきます。  最高落下速度は、ジャンプの初速度と同じにしました。(また手抜き?)

(もちろん現実での重力はこんなに単純なものではありませんので、誤解なきように)

あと、ジャンプは空中でもできてしまってはまずいです。  そのため、現在ジャンプできる状態かどうかを判断するようにします。  ジャンプした瞬間に「ジャンプ不可状態」にして、着地したらまた「ジャンプ可能」に戻します。  こうすれば、ひよこのくせに空を飛んでしまう現象を避けることができます。 (まあ、こんなに飛び跳ねられるひよこもいないでしょうが・・・)

ところで、空中でも普通に足が動いてしまってますが ・・・ (-_-;) ・・・ 大目に見てください。 m(_ _)m


操作方法

ひよこをジャンプさせるのは、キーボードで一番押しやすいスペースキーにしましょう。  あと、マウスでも操作できるようにします。  2つの操作方法を用意することにより、遊ぶ人の好みによって使い分けられるので、ユーザーフレンドリになります。  このように、使う(遊ぶ)人の立場になってプログラムを作るのは、結構重要なことだったりします。

ついでに、新しい機能も追加してみます。  それは、リセット機能です。 一発で最初の状態に戻せるので、意外と役立つかもしれません。  作り方は簡単で、初期化の処理で、起動したときに一度だけ行えばよいもの以外を分離し、それをキーが押されたときに呼び出すだけです。  使用するのは、 Reset ということで R キーにします。

リセットはページをリロードしてもできますが、これはあくまで実行システム側の機能なので、 元に戻したくないもの(例えば、ハイスコア)も初期化してしまいます。  やはり、作者の意図した「リセット」をしてほしいものです。 

こういった機能を付けることで、さらにユーザーフレンドリになりますよ〜。  なお、各操作の認識は、関数の機能により「押した瞬間」のみを検知しています。


次の課題

というわけで、スクリプトはこんな風、 結果はこんな風になりました。

さて、ジャンプできるようにしたのは良いですが・・・いくら飛んでも意味が無い。(笑)  今の段階では、ジャンプの使い道が無いので、ゲームにはなりませんね。

ということで、次は「アレ」を追加します。

 

ページ一覧に戻る  次のレベルへ!

Copyright (c) Rabit 2005-2012 all rights reserved.