やあやあ第二回目だよ。前回やった部分の細かい説明は省いていくからわからない箇所があったら前回の記事を参照してくれ。
了解!今回は敵キャラの追加ね、これで一気にゲームらしくなるわね

 

では早速敵キャラを作っていこうか、レイアウト上に“Sprite”を追加して“Behiviors”“Platformer”を挿入してくれ
追加したわ、でもこのままだと敵キャラも十字キー押したら一緒に動いちゃうんじゃない?

 

いいところに気が付いたな、デフォルトだとそうだがレイアウト上で敵をクリックし、”Propaties”“Platform”内の“Default controls”をオフにすれば動かなくなるから大丈夫だ。
はぇ~、じゃあどうやって動かすの?

 

“Event sheet”を使う、ここの記事で説明したと思うが基本的に「〇〇が△△したら□□をする」という構成になっている。では実際に設定してみようか

 

“Event sheet”タブを開くとこんな感じになってるはずだ。

event-sheet

何もないわね

 

ゆっくりやっていこう、まず右クリックを押して“add event”、ウィンドウが出てきたら歯車のマークの“System”ダブルクリック、“General”欄の“Every tick”をダブルクリックしてくれ
わ、なんか追加されたわ

 

今追加した動作は「常に実行する」というものだ、次に追加された“Every tick”の右側の“Add action”をクリックし、敵の“Sprite”をダブルクリック、下にスクロールするとオレンジ色の謎の人のアイコンが並んでいるところがあるはずだ
“Platform”のところね、あったわ

 

その中に“Simulate control” という項目があると思うんだが、それをダブルクリックして“Control”“Left”になってるのを確認したら右下の“Done”を押してくれ、これで「敵はゲーム終了するまで左に動き続ける」状態になる。では実際に見てみようか“Layout”に切り替えて“solid”の上にプレイヤーより右側に“Enemy”を置いてF5を押してみてくれ
おー左に動いた速い!、…そのままどっかいっちゃった…

 

じゃあスピードを落とそうか、“Layout”に戻った後“Enemy”をクリックして左の“Platform”“Max speed”をそうだな…50に設定しよう、これで大分スピードが落ちるはずだ。
いい感じのスピードになったわ。

 

続いて敵を踏んだら倒せる設定をしようか、“Event sheet”に移り、イベントが追加されてないところで右クリック、“Add event”“Player”をダブルクリック、その中に“On collision with another object”というものがあるからダブルクリック、“<click to choose>”と書かれたボタンがあるウィンドウが出るからボタンをクリックし、“Enemy”をダブルクリック…これで「プレイヤーが敵にぶつかったら」までのイベントを作ることができた
むむ…なんとか設定できたわ

 

ここで“Player”“Image points”を変えてあげよう
デフォルトのままじゃだめなの?

 

理由は後述する、では“Layout”に戻って、“Player”をダブルクリックして編集画面を出し、編集画面の左下にある照準のマークをクリックしてくれ、すると“Image point”というウィンドウが出る、“Origin”を右クリックしたあと“Quick assign”“Bottom”をクリックしてくれ、これで“Player”の中心点は真ん中の足元になった。

imagepoint

“Player”の中心点を足元にしてあげればいいのね!

 

そういうことだ、設定できたら再び“Event sheet”に戻ってくれ、そして「Playerが敵にぶつかったら」のイベントを右クリックして“Add another condition”をクリックanother-condition

出てきたウィンドウ内の”Player”をダブルクリックし、下の方にある“Compare Y”をいうのをダブルクリック、すると新しくウィンドウが出てくる。

選択できるとこと、数字を入力できるところがあるわ

 

“Comparison = Equal to”をクリックして“< Less than”に変更し、下の数字を入力することろには“Enemy.Y”と入れてくれ。気を付けてほしいのは今回は敵の名前を“Enemy”にしたがもし別の名前(例”teki”,”akaiyatu”等)に設定してたら“Enemy”の部分だけ対応した名前を入れてくれ
ふむふむ…入力したわ

 

これで「プレイヤーが敵にぶつかった&プレイヤーのY座標が敵のY座標より上にある時」というイベントを作ることができた。続いて右の“Add action”をクリックし”Enemy”をダブルクリック、“Destroy”という項目があるからそれをダブルクリックしてくれ。ここまででようやく「プレイヤーが敵にぶつかって尚且つプレイヤーのY座標が敵のY座標より上にある時敵を破壊する」イベントが出来る。さっき中心点が真ん中だと駄目なのはこの座標の兼ね合いがあるからだ
じゃあさっそくF5!、敵を踏む!居なくなった!なんか物足りない!!

 

まあまあ落ち着け、敵を破壊の下の“Add action”を押して“Player”をダブルクリック、“Set vector Y”ダブルクリック数字のとこを“-575”に設定してみてくれ、敵を踏んだ際、上にジャンプするはずだ
おージャンプしたわ!、ちなみにこの“set vectorY”っていうのは?

 

“Platform”“Behiviors”特有のイベントで設定した数字分Y軸に影響を与えるイベントだ、正の数で大きい数字を入れれば下方向に吹っ飛ぶ、逆に負の数で大きい数字を入れれば上に吹っ飛ぶ
ということは今負の数を入れたから上に跳んだのね

 

そういうことだ、敵一体だけじゃ味気ないから二体ほど増やしてあげようか
え゛、またあの設定をやるの・・・

 

安心してくれ、まったく同じ挙動の敵でいいなら“Layout”で敵を右クリック、“Copy”して適当な場所で“Paste”すればいい
おー増えた!それにちゃんと一体一体踏んで倒せるわ

 

うむ、敵の挙動も作れたことだし今回はここまでにしようか、次回は下から叩いたら壊れるor状態が変化するブロックを作ろう、そして今回作ったプロジェクトも置いておく(敵の作成と敵の作成と挙動挙動
はーいお疲れ様~

 

Construct2でアクションゲームをつくろう!その3【ブロック、足場の追加】(難易度★★☆☆☆)