iOSでシュウォッチアプリを作りたい(マルチタッチの検出は必要か)

Screen Shot 2012-08-08 at 22.55.51
先月、参考書を写経してGame Center対応のゲームの作り方を知ったので、必要最低限なシュウォッチアプリを作ろうと思った。けど、思うだけで何もしてなかったのだけど、@ITでマルチタッチに関する記事を見て思い出した。記事によると、マルチタッチの検出にはUIResponderクラスのtouchesBegan, touchesMoved, touchesEnded, touchesCancelledメソッドを実装するみたい。シュウォッチアプリに関しては、ボタンのViewそれぞれのタップイベントを拾ったら大丈夫そうだけど、わからないので試してみた。UIResponderのメソッドを実装しなくても大丈夫そう。

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

// Buttonのタップ回数
@property (assign) NSInteger numButton;
@property (assign) NSInteger numButtonA;
@property (assign) NSInteger numButtonB;

// Buttonのタップ回数を表すラベル
@property (weak) IBOutlet UILabel *numButtonLabel;
@property (weak) IBOutlet UILabel *numButtonALabel;
@property (weak) IBOutlet UILabel *numButtonBLabel;

// Buttonをタップしたときの処理
- (IBAction)tapButtonA:(id)sender;
- (IBAction)tapButtonB:(id)sender;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

// プロパティに対応するメンバー変数とアクセサメソッドの生成
@synthesize numButton = _numButton;
@synthesize numButtonA = _numButtonA;
@synthesize numButtonB = _numButtonB;
@synthesize numButtonLabel = _numButtonLabel;
@synthesize numButtonALabel = _numButtonALabel;
@synthesize numButtonBLabel = _numButtonBLabel;

// イニシャライザ
- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];

    if (self) {
        // メンバー変数の初期化
        _numButton = 0;
        _numButtonA = 0;
        _numButtonB = 0;
    }

    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.

    // Buttonの押下回数を表示する
    NSString *strNum = [NSString stringWithFormat:@"%d", self.numButton];
    self.numButtonLabel.text = strNum;

    NSString *strNumA = [NSString stringWithFormat:@"%d", self.numButtonA];
    self.numButtonALabel.text = strNumA;

    NSString *strNumB = [NSString stringWithFormat:@"%d", self.numButtonB];
    self.numButtonBLabel.text = strNumB;
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}

// ButtonA, Bをタップしたときの処理
- (IBAction)tapButtonA:(id)sender
{
    self.numButton++;
    self.numButtonA++;
    self.numButtonLabel.text = [NSString stringWithFormat:@"%d", self.numButton];
    self.numButtonALabel.text = [NSString stringWithFormat:@"%d", self.numButtonA];
}

- (IBAction)tapButtonB:(id)sender
{
    self.numButton++;
    self.numButtonB++;
    self.numButtonLabel.text = [NSString stringWithFormat:@"%d", self.numButton];
    self.numButtonBLabel.text = [NSString stringWithFormat:@"%d", self.numButtonB];
}

@end

これからの予定(シュウォッチアプリに必要なこと)

  • アプリコア(起動・終了/画面遷移)
  • ゲームコア(タイマーのOn/Off/ボタン連打のカウント)
  • Game Centerの実装
  • 広告の挿入
  • [オプション]グラフィック
  • [オプション]効果音・BGM

広告はiAdやAdMobとかがあると思うのだが、よくわかってないので、ゲームに組み込む前に独立してお試しプロジェクトを作ろう。

参考サイト

iPhoneソーシャルゲーム開発
林 晃
シーアンドアール研究所
売り上げランキング: 245996

関連エントリー

  1. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経8:動画の再生
  2. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経6:音声の再生
  3. ユーザーエージェントを見て遷移先を振り分ける
  4. PhoneGapお試し(iOS)
  5. iOSゲーム本”iPhoneソーシャルゲーム開発”の写経5:アニメーション処理
This entry was posted in 未分類 and tagged . Bookmark the permalink.