1

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

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

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

这是图像的概念,显然不可能将整个图像塞入设备视口:

细胞

所以说真的,在我深入研究这个项目之前,我只是好奇是否可以使用大图像,允许用户随意移动它,如果我能检测到细胞器的触摸,也许通过 CCSprites?

4

2 回答 2

2

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

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

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

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

此时,您可以通过触摸、滚动或任何适合您需要的方式做任何您想做的事情。

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

于 2012-02-13T04:14:13.767 回答
1

最大纹理大小受 OpenGL ES 的限制,而不仅仅是 coscos2d,它会因设备而异。但是,您可以将图像加载到多个纹理中,然后在屏幕上定位和移动这些纹理。因此,实际上您可以拥有任何您想要的大小的图像外观,但您必须以编程方式管理图像的不同精灵(图块)。

CCSptites 不检测触摸。CCLayers 将获得触摸事件,然后您可以进行命中测试以查看它是否命中给定的 CCSprite。

于 2012-02-13T03:23:40.873 回答