7日目は「残りのオブジェクト全部」実装します!
出張もあり二日間空いたので、一気に実装しちゃいます!
ゲーム作り7日目
7日目は残り全てのオブジェクトを実装していきます!
今回も特に新しいことはなく
タグをうまく使い分けられるか
というところがポイントでした!
オブジェクトを全部配置
最終的なゲームの図をもう一度見てみましょう!
このゲームのポイントは3色の敵と弾があることです。
つまり、あと青敵と緑敵を追加で足します!
青弾と緑弾を発射できるようにし、ボタンもつけます!
さらに、左のほうを見るとコインのようなものがあります。
このコインを大砲に当てたらボーナスが入るようにします!
コインと青敵、緑敵はEnemy
青弾、緑弾はBullet
ボタンはボタン
それぞれ
Duplicateを作成 → Spriteを変更 → プレハブ化
これで完了です!
似たようなものを増やすのは案外簡単でした!
コードを修正していく
修正が必要なのは青弾、緑弾、コインです!
基本はEmeyのコードでいいのですが、
それぞれのスピードとポイント、
そしてどのタグに当たったらどうなるか、
これを実装します。
そして少しのランダム要素を加えました!
コインの速さ、出てくる間隔、ポイント
ここを少しランダムにして値を振りました!!
スピードとポイントはプロパティ変数を変更してあげればOKです!
青が少し動くのが早くて、緑は遅いけどいっぱい出てくるって感じにしました。
Tagもほとんど同じで
青敵の場合は、
青い弾に当たったら自分と弾をDestroyして、
それ以外の色なら弾をDestroyです!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
void OnTriggerEnter2D (Collider2D col) {
if (col.tag == "Bullet_Blue") {
Destroy (this.gameObject);
Destroy (col.gameObject);
gameManager.GetComponent<GameManager>().UpdateScore (bulletHitPoint);
}
if (col.tag == "Bullet_Red" || col.tag == "Bullet_Green") {
Destroy (col.gameObject);
}
if (col.tag == "Wall") {
Destroy (this.gameObject);
}
if (col.tag == "PointWall") {
gameManager.GetComponent<GameManager> ().LifeDelete (1);
}
if (col.tag == "Cannon") {
gameManager.GetComponent<GameManager> ().LifeDelete (3);
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
最終的にはOnTriggerEnter2Dの中身はこんな感じになりました!
複雑に見えますが一つ一つ見ていけば大した場合わけではないと思います!
Coinの場合は、
弾に当たったらコインも弾もDestroyして、
Cannonに当たったらポイントが入るようにするだけです!
ゲーム上では全然違うものでも
コード上ではほとんど同じにかけました!
最終的にはこんな感じです!
Twitterに動画もあげるので是非見てください!
まとめ
ゲームの機能としてはこれで全て実装できました!
青や緑やコインやらが増えると大変かと思いましたが、
基本機能が一緒なので、つまりコードはほとんど同じなので
タグを少し変えるだけでいけました!
明日は最終日です!!!
最後はゲームの体裁を整えるために
画面の遷移とSound Effectを実装します!
完成までもう一踏ん張り頑張ります!!!
最後まで読んでいただきありがとうございました!
ゲームの完成楽しみにしていてください!!