2015年

6月

14日

Objective-C ルパン三世

ルパン三世 文字が1文字ずつ音付き出ていくあの画面です。

ViewController.m

#import <AudioToolbox/AudioToolbox.h>

#import "ViewController.h"


// タイトル 定数:const

NSString *const LUPIN_TITLE = @"ルパン三世";


@interface ViewController () {

    

    // システムサウンド

    SystemSoundID _ssId01;

    SystemSoundID _ssId02;

}


// iPhoneラベル

@property (weak, nonatomic) IBOutlet UILabel *lbTitole;


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    

    // 音準備処理

    [self doReady];


}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


-(void)time:(NSTimer*)timer{

    

    //static:数値が破棄されずに残る 加算される

    static int idx = 0;

    

    // LUPIN_TITLEの文字数

    if (idx  < LUPIN_TITLE.length) {

        

        // 1文字処理抜き取り

        // NSMakeRangeと同じ 構造体

        NSRange rng;

        rng.location = idx; // 文字ロケーション

        rng.length = 1;     // 1文字


        // 定数:LUPIN_TITLE = @"ルパン三世";

        NSString *str = [LUPIN_TITLE substringWithRange:rng]; 

        

        //NSLog(@"%@文字:%d", str, idx);

        

        // 1文字処理抜き取り

        self.lbTitole.text = str;

        

        // フォントサイズ変更

        self.lbTitole.font= [UIFont fontWithName:@"Arial Rounded MT Bold" size:200.0f];

        

        // 効果音1再生 カシャ

        AudioServicesPlaySystemSound(_ssId01);

        

        // 文字インデックス

        idx++;

    

        

    } else {

        // 最後の処理

        

        // 全文字ラベル表示

        self.lbTitole.text = @"ルパン三世";

        

        // フォントサイズ変更

        self.lbTitole.font= [UIFont fontWithName:@"Arial Rounded MT Bold" size:100.0f];

        

        // 効果音2再生

        AudioServicesPlaySystemSound(_ssId02);

        

        // タイマー停止

        [timer invalidate];

        

        // 文字インデックス クリア

        idx = 0;

    }

    

}


// 画面タップ時

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

               

    // タイマー起動

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.2

            target:self

            selector:@selector(time:)

            userInfo:nil

            repeats:YES];

               

            [timer fire];

}



// 音準備処理

- (void)doReady {

    

    NSBundle *bnd = [NSBundle mainBundle];

    

    // 設定#01 効果音

    NSURL *url01 = [bnd URLForResource:@"Sound01"

                         withExtension:@"wav"];

    

    CFURLRef urr01 = (CFURLRef) CFBridgingRetain(url01);

    AudioServicesCreateSystemSoundID(urr01, &_ssId01);

    CFRelease(urr01);

    

    // 設定#02 音楽

    NSURL *url02 = [bnd URLForResource:@"Sound02"

                         withExtension:@"wav"];

    

    CFURLRef urr02 = (CFURLRef) CFBridgingRetain(url02);

    AudioServicesCreateSystemSoundID(urr02, &_ssId02);

    CFRelease(urr02);

    

    //NSLog(@"サウンド2");

}


@end

GitHub Lupin3


▫️参考ページ

  

目 次