Щепотка для увеличения iPhone

Могу ли я каким-либо образом заставить масштабирование работать в моей игре, когда она работает на iPhone?

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

Есть ли способ реализовать жест щипка, который уменьшает масштаб? Может быть, это можно сделать в Xcode с контроллером представления или где-то добавить код?? Я новичок в Xcode, поэтому понятия не имею, как заставить это работать!

Не уверен, что это поможет, но вот несколько скриншотов проекта.

https://sites.google.com/site/boomblocksgld/pinch-to-zoom

>

#import <Box2D/Box2D.h>
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioServices.h> 
#import "SceneScript.h"

#import "Script.h"

#import "Actor.h"
#import "ActorType.h"
#import "Assets.h"
#import "Behavior.h"
#import "Game.h"
#import "GameModel.h"
#import "GroupDef.h"
#import "FadeInTransition.h"
#import "FadeOutTransition.h"
#import "Region.h"
#import "Runnable.h"
#import "Scene.h"
#import "SHThumbstick.h"
#import "Sparrow.h"
#import "Transition.h"
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UIKitDefines.h>

@protocol UIGestureRecognizerDelegate;
@class UIView, UIEvent, UITouch;


@interface Design_353_353_PinchZoom : SceneScript 
{
  @public
      NSString* tempHolder;

}
@end

@implementation Design_353_353_PinchZoom


-(void)load
{

}

-(void)update
{  
}
// Gesture Reconizer Methods
-(void)checkpinch {    

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer     >alloc]initWithTarget:self action:@selector(checkpinch)];
[pinch setDelegate:self];
[pinch setDelaysTouchesBegan:YES];
[self.view addGestureRecognizer:pinch];
[pinch release];
}


-(void)render:(SPRenderSupport*)g x:(int)x y:(int)y
{
[super render:g x:x y:y];

}



-(void)forwardMessage:(NSString*)msg
{

}

@end

person user1335118    schedule 15.04.2012    source источник
comment
вы можете использовать UIScrollView для этого   -  person Felix    schedule 16.04.2012
comment
Я нашел несколько руководств по использованию UIScrollView, но мне не удалось заставить его работать в моем проекте. Каждый раз, когда я тестировал, черный экран появлялся после экрана загрузки в симуляторе. Я не уверен, что я делаю неправильно.   -  person user1335118    schedule 16.04.2012
comment
Ниже приведен скриншот рабочего проекта Xcode.   -  person user1335118    schedule 16.04.2012
comment
2518569227721903826-а-1802744773732722657-S-sites.googlegroups.   -  person user1335118    schedule 16.04.2012


Ответы (1)


Если вы используете iOS 3.2 или более позднюю версию, добавьте следующий код в файл Viewdidload. И добавьте UIGestureRecognizerDelegate в файл .h.

//Gesture reconizer
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(checkpinch)];
[pinch setDelegate:self];
[pinch setDelaysTouchesBegan:YES];
[self.view addGestureRecognizer:pinch];
[pinch release];

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(checktap)];
[singleTap setDelegate:self];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired =2;
[self.view addGestureRecognizer:singleTap];
[singleTap release];


UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(checktap)];
[doubleTap setDelegate:self];
doubleTap.numberOfTapsRequired = 2;
doubleTap.numberOfTouchesRequired =1;
[self.view addGestureRecognizer:doubleTap];
[doubleTap release];


// Gesture Reconizer Methods
-(void)checkpinch {    

    //write here code for your requirements
}

-(void)checktap {

    //write here code for your requirements
}

Я надеюсь, что это поможет вам ... расслабьтесь

person Nitin    schedule 16.04.2012
comment
Я использую iOS 4.3.2, и я попытался добавить код, но у меня все еще есть проблемы. Я сделал это поведение под названием PinchZoom в stencilworks и скопировал ваш код в пользовательский блок кода. Затем, когда я опубликовал в Xcode, я открыл UIGestureRecognizer.h и скопировал #imports, протокол и класс в свой файл PinchZoom.mm. Я приложил код для PinchZoom.mm. Я получаю 2 ошибки: несовместимые типы указателей, отправляющие «Design_353_353_PinchZoom » на параметр типа «id‹UIGestureRecognizerDelegate›», и свойство «view» не найдено для объекта типа «Design_353_PinchZoom<». /я>' - person user1335118; 16.04.2012
comment
Я думаю, вы допустили ошибку, добавив код... просто добавьте этот код непосредственно в свой viewdidload... и добавьте делегирование ‹UIGestureRecognizerDelegate› в файл viewontroller.h... - person Nitin; 16.04.2012
comment
Я попытался добавить код после viewdidload, но он был заблокирован. «UIViewController.h» заблокирован для редактирования, и вы не сможете сохранить свои изменения. Вы хотите разблокировать его? Когда я нажал разблокировать, это не удалось и выдало следующую ошибку. Не удалось добавить разрешение на запись в родительскую папку, поскольку она не принадлежит вам. Попробуйте изменить права доступа к папке в Finder или Terminal. Я изменил права в поисковике для файлов, но это не сработало. Как вы думаете, что мне делать дальше??? Спасибо - person user1335118; 03.05.2012