2012-02-12 17 views
1

Cocos2Dで大きな画像を使用することは可能ですか?スワイプやピンチでユーザーが拡大/縮小できるようにしますか?Cocos2D - 大きい画像

私はthis投稿から、Cocos2Dイメージの最大解像度は2048x2048であることを確認します。これは明らかにデバイスのビューポートよりも大きいので、ユーザーがイメージの周りを移動できるようにします。

私はゲームを作成していない、私は任意のオルガネラをタップし、それらに関する情報のポップアップを表示することができますインタラクティブな生物細胞の一種を作っています。ここで

は、画像がどうなるかのアイデアです、と明らかにデバイスのビューポートに全部を詰め込むことはできません。

Cell

だから、本当に、私はこのプロジェクトにあまりにも深く掘り下げて調査する前に、私はちょうどそれがユーザーが任意に周りを移動する能力を可能にする大きな画像を使用することが可能かどうかについて興味があります、そして、おそらくCCSprites経由でオルガネラタッチを検出することができますか?

+0

大きな画像でスプライトを作成してみませんか? – Andrew

+0

@Andrew:ここに行く方法は?私は以前はこの図書館を使ったことが一度もなく、初めの研究をさらに進めています。 – Josh

答えて

2

CCSpriteをサブクラス化し、大きな画像をクラスの画像として使用することをお勧めします。 CCSpritesは確かに、単にスプライトのクラスに基本的なCCTouchDispatcherデリゲートを追加することにより、タッチを検出することができます。

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:-1 swallowsTouches:YES];

その後もあなたのCCSpriteのサブクラスにこのメソッドを追加します。

-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event

あなたが何かを行うことができますこの時点で触れたい、スクロールするなど、あなたのニーズに合ったものを望みます。

イメージを多数のスプライトに分割し、CCLayerを使用してタッチを管理することができます。イメージを大きくする必要があるかどうか、単一のイメージの制限が十分な場合彼らはかなり大きいと考えて、一緒に作業する。ここの私の方法はそれほど複雑ではありません。

1

最大テクスチャサイズは、coscos2dだけでなくOpenGL ESによって制限され、デバイスによって変更されます。ただし、イメージを複数のテクスチャにロードして、それらのテクスチャを画面上に配置して移動することができます。だから実際にあなたが望む任意のサイズの画像の外観を持つことができますが、プログラム的には、画像の異なるスプライト(タイル)を管理する必要があります。

CCSptitesはタッチを検出しません。 CCLayersはタッチイベントを取得してヒットテストを行い、CCSpriteがヒットしたかどうかを調べることができます。