2015-06-04 2 views
1

У меня возникли проблемы с установкой SKSpriteNode из UIImage. Я использую мост на UIImage, преобразовывая изображение в SKTexture, а затем создавая новый SKSpriteNode с этим SKTexture, но мой код продолжает сбой со следующим предупреждением: «Thread 1: EXC_BAD_ACCESS (code = 1, address = 0x0)»Настройка SKSpriteNode от UIImage

CGImageRef textureImage = (__bridge CGImageRef)(theUIImage); 
SKTexture *heroTexture = [SKTexture textureWithCGImage:textureImage]; 
SKSpriteNode *hero = [SKSpriteNode spriteNodeWithTexture:heroTexture size:CGSizeMake(64, 64)]; 

ответ

1

Вместо преодоления UIImage к CGImageRef, вы должны использовать:

CGImageRef textureImage = [theUIImage CGImage]; 

Если изображение не ноль, он должен работать.

Кроме того, вы можете попробовать:

SKTexture *heroTexture = [SKTexture textureWithImage:theUIImage]; 

Немного наконечника; всегда проверяйте значение «nullity».

+0

Я пробовал с и без моста, и моя нить все еще падает! Я также проверил, чтобы изображение не было nil (я добавил набор UIImageView для изображения для тестирования). Код отлично работает, когда я создаю экземпляр с использованием локального изображения: SKSpriteNode * hero = [SKSpriteNode spriteNodeWithImageNamed: @ "hero.png" normalMapped: YES]; –

+0

Итак, что является источником «theUIImage»? – EDUsta

+0

Я беру фотографию с помощью камеры и устанавливаю ее как UIImage –

1

Попробуйте создать текстуру, используя изображение: [SKTexture textureWithImageNamed:...], а затем используйте это для создания спрайта: [SKSprite spriteWithTexture:....]. (Это может быть SpriteFromTexture)

Смежные вопросы