3D

【Java・3D】2×2×2のルービックキューブを作ろう!【Part2/5】

 

前回

【Java・3D】2×2×2のルービックキューブを作ろう!【Part1/5】完成品 まずは完成品を見て、どんなものなのかを確かめてみよう! 雛形プログラムを作成 まずは、ライトとカメラを作成する...

 

ルービックキューブ(2×2×2)を作成する

前回までで、1つんキューブを描画することができました。

なので今度は2×2×2の合計8つのキューブをルービックキューブの形になるように描画していきましょう。

キューブの色を定義

(Main.java)

5次元配列なので少し大変な書き方になりました。

2×2×2個のキューブを3次元配列で指定します。

さらに6面分の色を各キューブにて指定します。

また、その色の指定は3つのテクスチャ番号で指定された配列なので、結果的に5次元配列となります。

キューブを2×2×2個分描画する

1つのキューブは「Translate」と3つの「Rotate」を保持し、平行移動とX・Y・Z軸の回転移動をすることができます。

なので2×2×2個分の「Translate」と「Rotate」のX・Y・Z軸分を用意します。

また、2×2×2個分のキューブの作成・設定は「for」文で行なっていきます。

また、1つのキューブの各面の色の指定は先ほど作成した5次元配列「color」を用いて指定します。

(Main.java)

この時点でもうルービックキューブの形が完成しました。

ルービックキューブを回転させる

キューブの移動の考え方

ルービックキューブが回転すると、各キューブの位置と回転角度が変わります。

そのため、この位置にどのキューブがあるのか、という情報が必要となります。

その情報を保持するためのクラス「Point」クラスを2×2×2個分作成し、「x・y・z」の3つの変数を持たせます。

この「x・y・z」には、その「Point」にどのキューブが入っているかという情報が入ることになります。

使い方はプログラムを見ながら抑えていきましょう。

(Main.java)

キューブを移動させる

では実際にキューブを移動させてみましょう。

Xキーを押したらキューブが回転するようにします。

(Main.java)

このプログラムでは一体何が行われているかというと、こちらの図がそれを示しています。

しかし、実際に実行していただければわかるのですが、キューブの回転角度が操作されていないため、黒い面が見えてしまいます。

なので次回はこのキューブの回転処理を加えていきます。

次回

【Java・3D】2×2×2のルービックキューブを作ろう!【Part3/5】[mathjax] 前回 https://itech-program.com/?p=2003 回転軸の謎を知ろう さてこれか...
ABOUT ME
IT系だんし
プログラミングが大好きな人。 趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です