welcome: please sign in
location: "etoysジョイスティックを使ったゲーム"の差分
22と34のリビジョン間の差分 (その間の編集: 12回)
2012-06-21 05:50:29時点のリビジョン22
サイズ: 5293
編集者: masahiko
コメント:
2012-06-29 00:17:31時点のリビジョン34
サイズ: 3685
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 7: 行 7:

前回分は
[[etoys真偽値型の変数を利用する|真偽値型の変数を利用する]]
のページを参照してください。
行 15: 行 20:
=== 今回分 ===
ゴール(またはアイテム、宝など)を守っている敵を配置する。
=== 今回追加分 ===
 . ゴール(またはアイテム、宝など)を守っている敵を配置する。
 . 敵にそれらしい動きをつける。
 . 主人公が敵とであったときの処理を記述する。
 . ゲームバランスを調整する。
 . 他の人に遊んでもらえるように画面を整える。
----
=== 敵を配置し、動きをつける ===
ゴール(またはアイテム、宝など)を守っているような動きをつけましょう。
行 18: 行 30:
敵にそれらしい動きをつける。

主人公が敵とであったときの処理を記述する。

ゲームバランスを調整する。
----

次の項目の応用です。
 . ジョイスティック
 . 変数

内容例
 . ゴールを守っている敵にぶつかったら、スタート位置にもどされる。
画面例
 . {{attachment:game10.png}}
----
=== 絵を配置する ===
次の絵を描いて配置しました。
 . 主人公
 . 敵(カエル)
 . ゴール(宝箱)
 . 障害物(山)
----
=== 主人公の動きを記述する ===

==== ジョイスティックで動かせるようにする ====

 . ジョイスティックを配置し、主人公を動かすスクリプトを作ります。

 . X方向に動かすためのスクリプトはこのようになります。
 . {{attachment:game13.png}}
 . Y方向についても同様に記述し、追加します。

==== ゴールについた時の処理を記述する ====
 . ゴールについたら、クリアできたことを示した後、スクリプトを停止します。

==== 障害物にぶつかった時の処理を記述する ====
 . 障害物にぶつかったら、主人公をスタート位置にもどします。

==== 敵にぶつかった時の処理を記述する ====
 . 敵にぶつかった時も、主人公をスタート位置にもどします。

主人公のスクリプトはこのようになります。
 . オレンジ色で示した部分に、記述が必要です。
 . {{attachment:game14.png}}
----
=== 敵の動きを記述する ===
 . ゴールを守るための面白い動きを考えて、スクリプトを作ります。
----
=== 動作確認(1) ===
ここまでの動作確認をしっかりしておきます。

敵の動きや配置などを考え、クリアするのが難しい程度にするとよい。
-----
=== アイテムの追加 ===
アイテムを配置し、
主人公がこれを取った後では
クリアしやすくなるようにします。


 . 速く動けるようになる薬。
 . 敵より強くなる武器。
 . 障害物に穴をあける道具。

りんごを配置しました。
 . {{attachment:game15.png}}
----
=== 判定のための変数を作る ===

アイテムを取ったかどうかを変数(属性の一種)の
値として覚えておくと処理が簡単です。

主人公のビューア上部の'''V'''の部分を押して、変数を作ります。
 . 変数名は'''リンゴを持っている'''にしました。
 . 変数の左にあるメニューをクリックし、変数型を'''Boolean'''に変更します。
 . {{attachment:game16.png}}
----
=== アイテムが主人公と一緒に動くようにする ===
上で作成した変数を使うと簡単に書けます。
 . {{attachment:game17.png}}
 . 変数の値を'''はい'''にすると一緒に動き
 . 変数の値が'''いいえ'''のときは動かない
ことを確認しておきます。
----
=== アイテムを取る ===
主人公がアイテムのある場所に行ったら、変数の値を'''はい'''に変えます。
----
=== アイテムを持っているとき ===
敵や障害物に出会ったときの処理です。

 . 変数の値が'''いいえ'''の場合はすでに記述しました。
 . 変数の値が'''はい'''の場合の処理を追加します。

敵にぶつかったときの処理を変える例です。
 . アイテムをもっていないときの処理がこのようになっていたとします。
 . {{attachment:game18.png}}
 . テストタイルを追加し、変数の値が'''はい'''か'''いいえ'''かの判定をします。
 . {{attachment:game19.png}}
 . 変数が'''いいえ'''のときだけ、アイテムをもっていない時の処理をすればよいのでこのようになります。
 . {{attachment:game20.png}}
動かし方は
[[etoys変数を使った動き|変数を使った動き]]
のページを参考にしてください。
行 120: 行 35:
=== スタートボタンを作る ===
スタートボタンを作って完成です。
処理内容は
 . 主人公をスタート位置に配置する
 . アイテムを指定の位置に配置する
 . 変数の値をいいえにする
 . スクリプトをスタートする(主人公、敵、アイテム)
=== 主人公が敵と当たったときの処理 ===
これまで主人公の動作は(初期化を除いて)
主人公のスクリプトとして記述してきました。

 主人公が敵と当たったときの処理は
 敵を主体として考えれば、
 敵のスクリプトとして記述することもできます。

今回は'''敵のスクリプト内に記述'''してみましょう。

 '''利点'''
 正しく動作している主人公のスクリプトを
 修正しなくてすみます。

主人公に関する命令を敵のスクリプト内に記述することになるので
注意して作成してください。

==== 例1 ====
 . 主人公が敵と当たったとき、主人公を特定の位置に移動します。
敵を主語にして、文を書き直すとこうなります。
 . 敵が主人公と当たったとき、主人公を特定の位置に移動します。
スクリプト
 . この内容が敵のスクリプトのテストタイルに記述されています。
 . {{attachment:game42.png}}

==== 例2 ====
 . 敵が主人公と当たったとき、主人公を下方向に50移動します。
 . {{attachment:game43.png}}

==== 例3 ====
 . 主人公が敵と当たったとき「アイテムをなくしてしまう」も面白いと思います。
行 128: 行 67:
=== 動作確認(2) === === ゲームバランスを調整する ===
行 130: 行 69:
もういちど動作確認をします。 ゲームとして楽しめる程度の難しさにしましょう。
行 132: 行 71:
 . クリアした後でも、スタートボタンで再び開始できること。
 . アイテムを持っていないときは、クリアするのが難しいこと。
 . アイテムを取った後は、クリアするのが易しいこと。
つぎのような点を調整するとよい。
 . 敵の配置、動き方
 . 障害物の配置
 . アイテムの位置
 . 主人公の初期位置
 . 主人公の移動速度
 . 主人公が敵と当たったときの処理

また、アイテムがどんなもので
どんな効果があるのかを考るとよい。
例えば
 . 速く動けるようになる薬。
 . 敵を眠らせてしまう薬。
 . 扉のカギ。

----
=== 他の人に遊んでもらえるように画面を整える ===
スクリプト関係
 . スタートボタンを押すだけで何度でも遊ぶことができるように。
 . ゴールについたら、クリアできたことを示す。
画面関係
 . 障害物など動かないものは、動かせないようにする。
 . スクリプトやビューアなどはたたんでおく。

ジョイスティックを使ったゲーム

主人公をジョイスティックを使って動かして遊ぶゲームを作ります。

以下の例を参考にして、楽しいものを作りましょう。


前回まで

前回分は 真偽値型の変数を利用する のページを参照してください。

画面例

  • game31.png

ここまでできていました。

  • 主人公をジョイスティックを使って動かす。
  • いくつかある障害物のところは通れない。
  • ゴールにたどり着いたら終わり。
  • アイテムを取ると動作が変わる。


今回追加分

  • ゴール(またはアイテム、宝など)を守っている敵を配置する。
  • 敵にそれらしい動きをつける。
  • 主人公が敵とであったときの処理を記述する。
  • ゲームバランスを調整する。
  • 他の人に遊んでもらえるように画面を整える。


敵を配置し、動きをつける

ゴール(またはアイテム、宝など)を守っているような動きをつけましょう。

動かし方は 変数を使った動き のページを参考にしてください。


主人公が敵と当たったときの処理

これまで主人公の動作は(初期化を除いて) 主人公のスクリプトとして記述してきました。

  • 主人公が敵と当たったときの処理は 敵を主体として考えれば、 敵のスクリプトとして記述することもできます。

今回は敵のスクリプト内に記述してみましょう。

  • 利点 正しく動作している主人公のスクリプトを 修正しなくてすみます。

主人公に関する命令を敵のスクリプト内に記述することになるので 注意して作成してください。

例1

  • 主人公が敵と当たったとき、主人公を特定の位置に移動します。

敵を主語にして、文を書き直すとこうなります。

  • 敵が主人公と当たったとき、主人公を特定の位置に移動します。

スクリプト

  • この内容が敵のスクリプトのテストタイルに記述されています。
  • game42.png

例2

  • 敵が主人公と当たったとき、主人公を下方向に50移動します。
  • game43.png

例3

  • 主人公が敵と当たったとき「アイテムをなくしてしまう」も面白いと思います。


ゲームバランスを調整する

ゲームとして楽しめる程度の難しさにしましょう。

つぎのような点を調整するとよい。

  • 敵の配置、動き方
  • 障害物の配置
  • アイテムの位置
  • 主人公の初期位置
  • 主人公の移動速度
  • 主人公が敵と当たったときの処理

また、アイテムがどんなもので どんな効果があるのかを考るとよい。 例えば

  • 速く動けるようになる薬。
  • 敵を眠らせてしまう薬。
  • 扉のカギ。


他の人に遊んでもらえるように画面を整える

スクリプト関係

  • スタートボタンを押すだけで何度でも遊ぶことができるように。
  • ゴールについたら、クリアできたことを示す。

画面関係

  • 障害物など動かないものは、動かせないようにする。
  • スクリプトやビューアなどはたたんでおく。

etoysジョイスティックを使ったゲーム (最終更新日時 2012-06-29 00:17:31 更新者 masahiko)