是否可以在Cocos2D中使用大图像,并通过滑动或捏合允许用户放大和缩小?
我从this帖子看到,Cocos2D图像的最大分辨率为2048x2048。这显然比设备视口大,所以我希望用户能够在图像周围移动。
我不是在创造一个游戏,我正在制作一种互动的生物细胞,这将允许用户点击任意细胞器,并查看有关它们的信息弹出窗口。
以下是图像的概念,显然不可能将整个事物塞进设备视口中:
所以,在我深入研究这个项目之前,我只是好奇是否可以使用大图像,这样可以让用户随意移动它,如果我能检测到的话organelle接触,也许是通过CCSprites?
答案 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。