/* syntax highlight */ /* end of syntax highlight */

2011年1月26日 星期三

iphone app 開發 (四十三) 亂數結合搖晃互動功能

Bookmark and Share

此篇文章將會結合上上篇的 產生亂數 功能,並加入上一篇所寫的 加速感應器觀念

完成一個搖晃後就可以丟一次亂數的小 App

當然這裡是不討論丟出來究竟是不是真的是完全的亂數這件事啦…那又是另一個 大學問

螢幕快照 2011-01-27 下午1.46.28

 

 

第一步驟:撰寫程式碼

首先請開啟一個 view-based application ,並取名為 shakeRandom

螢幕快照 2011-01-27 下午12.13.34 螢幕快照 2011-01-27 下午12.14.34

 

先來設計 header file 檔吧,我們總共會用到一個顯示亂數的 label ,及一個 int 亂數值,當然記得要設定你的加速度偵測參數,像是強度等等

#import <UIKit/UIKit.h>

#define kAccelerationThreshold        0.5 //指定搖晃的強度門檻,0.5很低,代表很容易偵測到
#define kUpdateInterval               (1.0f/10.0f) //設定每秒查詢 10 次

@interface shakeRandomViewController : UIViewController <UIAccelerometerDelegate>{
    UILabel *randomNumberText; //顯示隨機數字的 label
    int randomNumber; //亂數
}

@property(nonatomic,retain) IBOutlet UILabel *randomNumberText;

@end

 

 

然後實做部份其實也很簡單,如果你有讀懂之前兩篇文章,也只是把程式碼兜在一起而已

開始時先包含開頭設定進去

#import "shakeRandomViewController.h"

@implementation shakeRandomViewController
@synthesize randomNumberText;

 

然後在 viewDidLoad 部份設定開始要用搖晃偵測

- (void)viewDidLoad {
    UIAccelerometer *acce1 = [UIAccelerometer sharedAccelerometer];
    acce1.delegate = self;
    acce1.updateInterval= kUpdateInterval;
}

 

接下來實做 accelerometer

#pragma mark accelerometer
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{

        if (acceleration.x > kAccelerationThreshold || acceleration.y > kAccelerationThreshold || acceleration.z > kAccelerationThreshold) {
            randomNumber = 1+ arc4random() %(6);
            randomNumberText.text =   [NSString stringWithFormat:@"%d",randomNumber];   
        }
}

 

然後記得釋放記憶體

- (void)viewDidUnload {
    self.randomNumberText = nil;
}

- (void)dealloc {
    [randomNumberText release];
    [super dealloc];
}

 

 

第二步驟: 安排畫面元素

這部份很簡單,記得在畫面安排一個 label ,然後從 File’s Owner 按 ctrl 拉一條線過去並選擇 randomNumberText 即可,可修改裡面的字

螢幕快照 2011-01-27 下午1.45.15

 

 

第三步驟:編譯

如果成功就會看到下圖,剛開始是顯示一些資訊,在搖晃就會產生隨機 1~6 的亂數

螢幕快照 2011-01-27 下午1.46.28 image

 

這裡 可以下載專案檔,可以玩看看

0 意見:

張貼留言

Related Posts Plugin for WordPress, Blogger...