2012-04-15 9 views
1

Есть ли в любом случае я могу получить щепотку для увеличения работы для моей игры, когда она работает на 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 
+0

вы можете использовать UIScrollView для этого – Felix

+0

я нашел несколько учебников об использовании UIScrollView, но я не смог он работает в моем проекте. Каждый раз, когда я тестировал, черный экран показывался после экрана загрузки в симуляторе. Я не уверен, что я делаю неправильно. – user1335118

+0

Ниже приведен скриншот рабочего проекта Xcode. – user1335118

ответ

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 
} 

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

+0

Я использую IOS 4.3.2, и я попытался добавить код, но я все еще возникают проблемы. Я сделал это поведение под названием PinchZoom в stencylworks и скопировал ваш код в пользовательский блок кода. Затем, когда я опубликовал Xcode, я открыл UIGestureRecognizer.h и скопировал #imports, protocol и class в файл PinchZoom.mm. Я прикрепил код для PinchZoom.mm Я получаю 2 ошибки: Несовместимые типы указателей, отправляющих 'Design_353_353_PinchZoom *' в параметр типа 'id ' и Property 'view' не найдены на объекте типа 'Design_353_PinchZoom * ' – user1335118

+0

Я думаю, что вы сделали ошибку, чтобы добавить код ... просто добавьте этот код в свой viewdidload напрямую ... и добавьте делегирование в файл viewontroller.h ... – Nit

+0

Я попытался добавить код после, viewdidload , но он был заблокирован. «UIViewController.h» заблокирован для редактирования, и вы не сможете сохранить свои изменения. Вы хотите разблокировать его? Когда я ударил разблокировку, это провалилось и дало мне следующую ошибку. Не удалось добавить разрешение на запись в родительскую папку, потому что вы ее не владеете. Попробуйте изменить разрешения папки в Finder или Terminal. Я изменил разрешения в finder для файлов, но это не сработало. Как вы думаете, что я должен делать дальше ??? благодаря – user1335118