Cocos2D - 大图

时间:2012-02-12 16:52:38

标签: cocos2d-iphone cocos2d-android

是否可以在Cocos2D中使用大图像,并通过滑动或捏合允许用户放大和缩小?

我从this帖子看到,Cocos2D图像的最大分辨率为2048x2048。这显然比设备视口大,所以我希望用户能够在图像周围移动。

我不是在创造一个游戏,我正在制作一种互动的生物细胞,这将允许用户点击任意细胞器,并查看有关它们的信息弹出窗口。

以下是图像的概念,显然不可能将整个事物塞进设备视口中:

Cell

所以,在我深入研究这个项目之前,我只是好奇是否可以使用大图像,这样可以让用户随意移动它,如果我能检测到的话organelle接触,也许是通过CCSprites?

2 个答案:

答案 0 :(得分:2)

我建议继承CCSprite并将大图像用作类的图像。 CCSprites当然可以通过简单地将基本的CCTouchDispatcher委托添加到精灵的类来检测触摸:

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

然后还将此方法添加到您的CCSprite子类:

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

此时你可以做任何你想做的事情,滚动或任何适合你需要的东西。

您可以将图像分解为多个精灵并使用CCLayer来管理触摸,这取决于您是否真的需要您的图像那么大,或者单个图像的限制是否足以让您合作,考虑到它们也很大。我的方法比这复杂得多。

答案 1 :(得分:1)

最大纹理大小受OpenGL ES的限制,而不仅仅是coscos2d,它会因设备而异。但是,您可以将图像加载到多个纹理中,然后在屏幕上定位并移动这些纹理。所以你真的可以看到你想要的任何尺寸的图像,但是通过编程,你将需要管理图像的不同精灵(图块)。

CCSptites不会检测到触摸。 CCLayers将获得触摸事件,然后您可以进行命中测试,看它是否会击中givcen CCSprite。