Cocos2D - большое изображение - PullRequest
       29

Cocos2D - большое изображение

1 голос
/ 12 февраля 2012

Можно ли использовать в Cocos2D большое изображение и разрешать пользователю, проводя пальцем или сжимая его, увеличивать и уменьшать масштаб изображения?

Я вижу из этого сообщения, чтомаксимальное разрешение для изображения Cocos2D составляет 2048x2048.Это, очевидно, больше, чем область просмотра устройства, поэтому я хочу, чтобы пользователь мог перемещаться по изображению.

Я не создаю игру, я создаю своего рода интерактивную биологическую ячейку, которая позволит пользователю нажимать на произвольные органеллы и видеть всплывающую информацию о них.

Вот идея о том, каким будет изображение, и, очевидно, втиснуть все это в область просмотра устройства невозможно:

Cell

Так что действительно, прежде чем я углублюсь в этоПроект, мне просто любопытно, возможно ли использовать большое изображение, которое дает пользователю возможность произвольно перемещать его, и, если я могу обнаружить прикосновения к органеллам, возможно, через CCSprites?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Я рекомендую создать подкласс CCSprite и использовать ваше большое изображение в качестве изображения класса.CCSprites, безусловно, может обнаруживать касания, просто добавив базовый делегат CCTouchDispatcher к классу спрайта:

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

Затем добавьте этот метод в свой подкласс CCSprite:

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

В этот момент вы можете делать все, что угодно, с помощью касаний, прокрутки или того, что вам больше подходит.

Вы можете разбить изображение на множество спрайтов и использовать CCLayer для управления касанияминапротив, это просто зависит от того, действительно ли вам нужно, чтобы ваше изображение было таким большим, или для вас достаточно ограничений для одного изображения, учитывая, что они тоже довольно большие.Мой метод здесь намного менее сложен, чем этот.

1 голос
/ 13 февраля 2012

Максимальный размер текстуры ограничен OpenGL ES, а не только coscos2d, и он меняется в зависимости от устройства.Однако вы можете загрузить изображение в более чем одну текстуру, а затем расположить и переместить эти текстуры по экрану.Так что на самом деле вы можете иметь вид изображения любого размера, который вам нужен, но программно вам придется управлять различными спрайтами (фрагментами) изображения.

CCSptites не обнаруживает прикосновения.CCLayers получит сенсорные события, которые вы можете затем выполнить тестом на попадание, чтобы увидеть, попадет ли он в учетную запись CCSprite.

...