2012-02-02 9 views
0

私はいくつかの簡単なiOSアプリケーションを開発しました。私は簡単な迷路ゲームを開発しようとしています。私がやりたいことは本当に基本的なものなので、どのような道に行くべきかの指針を探しています。IOSの3Dエキスパートのため

基本的には私がやろうとしていることです:シンプルなエスケープ - 迷路ゲームで、2次元配列で読み込んで迷路にします。

各四角形の真ん中にパースペクティブを立てて、フリックまたはボタンを押すと1つの四角形に進み、左右に回すことができます。配列の数値に基づいて方法にテクスチャを適用できるようにしたいと思います。壁の動きが私の方に移動してから停止するのが本当に好きです。

壁は常に同じ高さになり、迷路は単純な正方形のブロックになりますが、おそらく4x4のような2x2以上の部屋を手渡してレンダリングを処理できるようにしたいと思いますそれ。

私の要件が本当に基本的なので、OpenGLで何かしようとするのは残酷かもしれません。私が言及したように、それは自由な動きではないでしょう。あなたがボタンを押して左右に回すたびに、1平方メートル進むでしょう。

私はレイキャスティングについてこのようなことについて何かを読んだことがありますが、これをiOSでどのように達成するかはわかりません。また、迷路には2/3の画面全体が表示されないようにしたいのですが、残りはボタンとラベルのような標準のiOSコントロールと背後にある背景です。

どのような書籍や記事を読んで助けてください。これは本当に基本的なので、私はサードパーティのエンジンを使用しないことを好むだろう。

答えて

3

これは、OpenGLよりはるかに簡単なCore Animationを使用して行うことができます。あなたのプロジェクトにQuartzCoreをインポートする場合は、次のように3Dで任意のビューを配置することができます

//set the view's 2D position so that the vanishing point is the middle 
//of the screen - use the same centre for every view 
view.center = CGPointMake(window.bounds.size.width/2.0f, window.bounds.size.height/2.0f); 

//create a 3d transform 
CATransform3D transform = CATransform3DIdentity; 
transform.m34 = -1.0f/500.0f; // this sets the 3D perspective 

//you can transform the view in 3D relative to the camera 
//this rotates the view by 45 degrees about the Y axis 
//but you can also scale, translate, etc using equivalent functions 
transform = CATransform3DRotate(transform, M_PI_4, 0.0f, 1.0f, 0.0f) 

//transform the view in 3D 
view.layer.transform = transform; 

をですから、UIImageViewsとしてあなたの壁を作成する場合は、上記のロジックを使用して、個別に各1を変換することにより室内にそれらを手配することができます。

+0

426 x 426の画面中央に画像を追加して表示を変更しました。私のUIImageのビューには、それはすべての画像を短く、今よりも広くなります。私は何か見落としてますか? – TommyT39

+0

私の間違いは私のiPadが風景になっており、その眺めは肖像画になっていました。だから私の壁のための私の全体的なウィンドウが426で、私はそれを中心に画面にどのように私はその視点を適用するだろうか?また、それは開いている広場になるほぼ中央に4つの壁になるようにしたい。 – TommyT39

+0

"全体的なウィンドウ"のビューを作成して画面の中央に配置し、そのビューの中央に壁のビューを配置します。ウインドウビュー自体ではなく、壁にのみパースペクティブを適用します。 –

関連する問題