изображение с камеры iPhone в Cocos2d - PullRequest
0 голосов
/ 12 марта 2012

У меня есть 2 сцены в моем проекте cocos2d.В моей первой сцене у меня есть кнопка, которая открывает контроллер UIImagePicker, который позволяет мне выбирать изображение с камеры.Я сохраняю изображение в NSUserDefaults путем преобразования моего UIImage в NSData.См. Приведенный ниже код

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
// Access the uncropped image from info dictionary
[myController dismissModalViewControllerAnimated:YES];
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
CGRect myRect = CGRectMake(image.size.width/2-160, image.size.height/2-160, 320, 320);
UIImage *resultImage = [self cropUIImage:image atRect:myRect];

NSData *imageData;
imageData = [NSKeyedArchiver archivedDataWithRootObject:resultImage];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"camera" forKey:@"pictureSource"];
[defaults removeObjectForKey:@"picId"];
[defaults setObject:imageData forKey:@"picId"];
[defaults synchronize];
[picker release];
//move to screen
[[CCDirector sharedDirector] replaceScene: [CCTransitionSlideInR transitionWithDuration:0.5f scene:[cameraImageScene node]]];
}

Затем я заменяю экран на экран изображения камеры, где я отображаю изображение с помощью спрайта.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *imageData;

    imageData = [defaults objectForKey:@"picId"];
    UIImage *imageU = [NSKeyedUnarchiver unarchiveObjectWithData: imageData];

    CCSprite *image = [CCSprite spriteWithCGImage:[imageU CGImage] key:@"cam"];
    image.scale = 0.75f;
    [image setPosition:ccp(winSize.width/2-3,287)];
    [self addChild:image z:2];

В этом слое у меня есть кнопка возврата, которая принимаетпользователь вернулся к Первой сцене.Когда я выбираю изображение из галереи в первый раз, все работает нормально.Но когда я касаюсь назад и затем выбираю другое изображение, все еще старый выбор отображается как изображение в спрайте.

Есть какие-нибудь подсказки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...