2012-04-24 24 views
1

私が達成したいのは、3D回転可能なキューブを備えたiPadアプリケーションで、キューブの両側に、一度クリックすると別のビューに移動したり、現れる。クリック可能な領域がある3D回転可能キューブ

  1. が、これは最初からXcodeでのOpenGL ESを使用して、いくつかの努力で達成することができ、またはそう、何が最も簡単なフレームワークになる場合、私は、3Dフレームワークを使用する必要がありますか? (私はユニティとそれほど高価なことは聞いたことがありません)

  2. 誰も私にこれを行う方法を学ぶ良いチュートリアルを持っていますか?

私は既に3D CSS3変換を試みましたが、私は最後の手段としてそれを保持したいと思います。

+0

[ここでのヒットテスト](http://stackoverflow.com/questions/5544808/mapping-from-2d-projection-back-to-3d-point-cloud) –

+0

ヒットテストを手伝ってもらえませんが、この回答でキューブを描画するためのサンプルコードにリンクしています:http://stackoverflow.com/a/2858658/19679 –

答えて

1

リテラル3Dキューブが必要な場合は、Core Animationを使用できます。 CATransformLayerをチェックしてください。 CATransformLayerを使用すれば、真の3D階層を簡単に構成できます。 Joe Ricioppoにはa cool article about thisとサンプルコードとビデオがあります。各サブレイヤを個別に変換するのではなく、3D階層を表す単一のレイヤーを操作する方がずっと簡単な点を除けば、3D CSS3トランスフォームと似ています。すべてのキューブの面を最初に回転させ、立方体を形成するように配置します。その後、トランスフォームレイヤーにトランスフォームを適用することができます。サブレイヤーを自動的に変換するために、すべてのファンシーな計算が行われます。

これの大きな問題は、タッチ操作がどのように機能するかです。 -hitTest:CATransformLayerに使用できません。2Dタッチを独自の3D階層にマップすることはできません。これを理解するには、独自のhitTest:実装を組み立てることができるかもしれませんが、それはその価値よりも多くの仕事のように感じられます。私はOpenGLが2Dから3Dへのタッチ変換のためにどのようなプロビジョニングを提供しているかに気づいていませんが、これが唯一の選択肢かもしれません。

+0

私はこれを試してみるつもりです。どういうわけかタッチを動かす方法を見つける必要があります。答えに感謝します。 – blackpla9ue

+0

この@ blackpla9ueに運がいい? – seenickcode

3

CATransition *transition = [CATransition animation]; 
transition.delegate = self; 
transition.duration = 0.8; 
transition.timingFunction = [CAMediaTimingFunction  functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
NSString *types[4] = {@"cube", @"rippleEffect", @"cube", @"alignedCube"}; 
NSString *subtypes[4] = {kCATransitionFromTop, kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromBottom}; 
transition.type = types[0]; 
transition.subtype = subtypes[1]; 
[self.view.layer addAnimation:transition forKey:nil]; 
+0

これらの遷移はプライベートAPIと見なされます。それらを使用して拒否される可能性があります – Mazyod

0

はたぶんあなたが探しているではない正確に何が、我々は機能的にあなたを助けるかもしれないいくつかのコードを生成しました。このコードを試してみてください。 http://www.chupamobile.com/products/details/2106/Cube+Selector/

これは、フル機能のうち、使用する準備ができますボックス

関連する問題