ウィンナスのプログラミング忘備録

アプリケーション制作をしている最中に発見したテクニックを忘備録としてまとめていきます。

【開発日記:ブロック崩し】第3回 ボールの動きを実装しました!

第3回目となりました!

今回はボールの動きを実装していきました!

具体的な内容としては以下の通りです。

  • ゲームオブジェクトの下準備
  • ボールの動き出しの処理
  • プレイヤーに衝突したときの跳ね返り処理

と、なります。

 

ゲームオブジェクトの下準備

 跳ね返り処理をする前に下準備をします。

f:id:win-friendof:20160724154355j:plain

以下の設定を行っていきます。

  • tagを「ball」に設定
  • RigiBody2Dを設定
  • RigiBody2Dの中にある「Mass」を極限に小さく設定
  • Circle Collider2Dを設定
  • スクリプト「BallActivity.cs」を設定

 

ボールの動き出しの処理

 まずはボールの動き出しを行います。

「BallActivity.cs」に記述していきます。

// Use this for initialization
void Start () {
  //乱数で初期方向を決める
  if (Random.Range (1, 100) > 50) {
    speed_x *= -1;
  }
  if(Random.Range(1, 100) < 50){
    speed_y *= -1;
  }

  vec.x = speed_x * Time.deltaTime;
  vec.y = speed_y * Time.deltaTime;
  GetComponent().AddForce (vec, ForceMode2D.Force);
}

 初めの処理は、乱数で動き出す方向を決めていきます。

プラスで右、上方向に動きます。

マイナスで左、下方向に動きます。

「GetComponent().AddForce (vec, ForceMode2D.Force)」を使うことで「vec」方向に動き出します。

 

この時点では動き出してそのままどこか行っちゃいます 笑

プレイヤーに衝突したときの跳ね返り処理

跳ね返るための処理を行っていきます。

f:id:win-friendof:20160724155521j:plain

上部メニューの[Assets]⇒[Create]⇒[Physics2D Material]をクリックします。

すると以下のようなマテリアルができるのでこれの設定をしていきます。

選択すると「Friction」と「Bounciness」を設定できるので「Bounciness」の値を1にします。

f:id:win-friendof:20160724160145j:plain

このマテリアルをballのCircle Collinder2Dに設定します。

f:id:win-friendof:20160724161108j:plain

赤枠で囲った場所をクリックすること、別ウィンドウが出現します。

先ほど作ったやつが[Assets]タブの中にあるのでクリックして設定していきます。

これで必要最低限のボールの処理が出来ました!

 

[]

BallActivity.csの中身は次回詳しくやっていきます!