素人がUnityでブロック崩し作ってみた - ②
とりあえずステージっぽいの作ってみた
とにもかくにもオブジェクト配置が先かなーと思い、オブジェクトをばこすこ置いて、
色付けたりして作ってみた。
四角はCube、まるはSpereをGameObjectからCreate選択して配置。
なんとなくいい感じ。まだ何も動いてないけど。笑
必要な機能を考えてみた
ブロック崩しに必要な機能ってなんだろう?と思ったので考えてみた
- スライドバーがキーボードの矢印キーで移動する
- スライドバーに当たったらボールが反射する
- ブロックにボールが当たったらブロックが消える
大まかに分けて上の三つだと思う。
1 スライドバーがキーボードの矢印キーで移動する
1に関しては、矢印キーの操作が以下で取得、移動できた。
// 横移動の値を格納
float inputMoveNum = Input.GetAxis("Horizontal");
// 矢印キーの移動量に応じて横移動
transform.Translate(inputMoveNum * 0.02f, 0, 0);
2 スライドバーに当たったらボールが反射する
これね、ちょっと一筋縄でいかない。笑
ボールが指定した角度でちゃんと移動する仕組みを構築して、
どんな時にどのぐらいの角度で反射するか決める仕組みも用意する必要あり。
ボールの角度は、みんなだいすき三角関数を使って考える必要があるようで。
※三角関数とかおぼえてないよーww
以下を参考に、作ってみた
結果的には以下ソースで動いた。
int r = 2; //斜辺の長さ
int angle = 120;// 角度
float x = r * Mathf.Cos(Mathf.Deg2Rad * angle); //移動量X
float y = r * Mathf.Sin(Mathf.Deg2Rad * angle); //移動量Y
// x軸、y軸に対して移動する処理
transform.Translate(x * 0.01f, y * 0.01f, 0);
画面はこんな感じ
三角関数思い出すために久しぶりにノート触った。笑
とりあえず動いたのでいったん良しとします。
明日以降は、スライドバーの動きに合わせて角度を指定して動かす
といったところをやろうと思います。
ではではノシ