2012-04-15 64 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

你可以使用這個 – Felix 2012-04-15 21:45:43

+0

一個UIScrollView我發現了一些教程有關使用UIScrollView的,但我沒能得到它在我的項目中工作。每次測試時,模擬器中的加載屏幕後都會顯示黑屏。我不確定我做錯了什麼。 – user1335118 2012-04-15 22:02:26

+0

下面是工作的Xcode項目的屏幕截圖。 – user1335118 2012-04-15 22:05:08

回答

1

如果您使用的是iOS 3.2或更高版本比你viewDidLoad中添加以下代碼。而在.h文件中添加UIGestureRecognizerDelegate

//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和我試圖添加的代碼,但我仍然有問題。我在stencylworks中創建了稱爲PinchZoom的行爲,並將您的代碼複製到自定義代碼塊中。然後當我發佈到Xcode時,我打開了UIGestureRecognizer.h並將#imports,協議和類複製到我的PinchZoom.mm文件中。我附上PinchZoom.mm的代碼 我得到2個錯誤:在類型爲'Design_353_PinchZoom'的對象上找不到類型爲'id '的類型的參數和屬性'視圖'的'Design_353_353_PinchZoom *'不兼容的指針類型*' – user1335118 2012-04-16 17:28:54

+0

我認爲你犯了錯誤添加代碼...只需將此代碼直接添加到您的viewdidload中...並在您的viewontroller.h文件中添加委託 ... – Nit 2012-04-16 17:34:32

+0

我試圖添加代碼後,viewdidload ,但它已被鎖定。「UIViewController.h」被鎖定以進行編輯,您可能無法保存更改。你想解鎖它嗎?當我打開解鎖,失敗,並給我以下錯誤。無法將寫權限添加到父文件夾,因爲您不擁有它。嘗試修改Finder或終端中文件夾的權限。我在文件查找器中更改了這些文件的權限,但沒有成功。你覺得我應該接下來做什麼?謝謝 – user1335118 2012-05-03 18:42:23