プロフィール

カイロプラクター てん

Author:カイロプラクター てん


【趣味】
・自転車に乗って
 ヘロヘロになる事。
・カイロプラクティックで
 人を元気にする事。

カレンダー
01 | 2013/02 | 03
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 - -
作ったiOS App

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iOS バックグラウンド動作 #2

今回は、iOS バックグラウンド動作 #1の続き
バックグラウンドでちょっと遊んじゃいましょう〜♪です。

バックグラウンド動作しているアプリで見かける
↓これを動作させましょう
1302218.png
見た事ありますね♪

バッジナンバーの表示させちゃいましょう!

さっそくプログラムへ

カウント処理の所に
1302219.png
    // バッジナンバー表示
[UIApplication sharedApplication].applicationIconBadgeNumber = count;

この一行です。

では、シュミレータRun!
ホームボタンを押してアイコンを見ると数字がカウントアップ↑
1302220.png
いえ〜い♪

うまく動きましたか?

ここまで来たら、10分以下で何かに使えるアプリに




やっぱり、あれですか!?
カップラーメンタイマー

3分=180カウントになったら、メッセージ表示させて
3分だよ!て知らせる様にしましょう。

1302221.png
    if(count == 180) {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.alertBody = @"カップラーメンできたよ!";
localNotif.soundName = @"alarmsound.caf";
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotif];

}


では、シミュレータRun!
180秒後
1302223.png1302222.png
バックグラウンドで確実に動いていますね♪

これで、バックグランド動作の勉強は終わり。

補足として、オーディオ、GPS,VoIPを使用していれば時間制限はありません。





スポンサーサイト
THEME:プログラミング | GENRE:コンピュータ |

iOS バックグラウンド動作 #1

今回は、iOSでアプリをバックグラウンド動作(マルチタスク)させる勉強をします。

バックグラウンドと言っても、
iOSで許させるバックグラウンド動作時間は
10分 悲しい〜。

今回使用するシステムは
Mac OS X 10.8.2
Xcode 4.6

まずは、プロジェクトファイルの作成
1302200.png
Create a new Xcode projectをクリック

[1][2]とクリックして
1302201.png

Product Nameに「BGTimer」←好きな名前でいいですが、今回はこれにしました。
1302202.png
「Next」→「Create」をクリック

これで、プロジェクトファイルができました。

では、部品を配置します。
MainStoryboard.storyboardをクリック
1302203.png
Labelをドラック&ドロップ

このラベルをこんな感じに変更
1302204.png

では、いつものおまじないの継承
ここをクリックして
1302208.png

ラベルを右クリックで、ドラッグ&ドロップ
1302206.png

ビュンと出たら
1302207.png
Nameに「timer_count」と入れてconnectをクリック

自動的に文字が記入されて継承終わり
1302209.png


このラベルの数字を1秒ごとに1増やして行きます。
では、プログラムです。

ここをクリックして表示を戻して
1302210.png

ViewContoroller.hにタイマー用の変数宣言
1302205.png

ViewContoroller.mをクリック
- (void)viewDidLoadの所にタイマーをセット
1302211.png

タイマー処理はこんな感じ
1302212.png

では、シミュレータRun!
1302213.png

ホームボタンを押して
1302214.png

しばらくしてから
もう一度、BGTimerをクリック
1302213.png

iOSが持っているレジューム機能で、
カウント値は、ホームボタンが押された時の値から開始されました。

あたり前ですが、これではバックグラウンド動作していません。

では、バックグラウンド動作させましょう。
おまじないです。
まずは、AppDelegate.hに変数宣言です。
1302215.png

次に、AppDelegate.mをクリックして
- (void)applicationDidEnterBackground:(UIApplication *)application
の所にこれです。
1302216.png
    bgTask =
[application beginBackgroundTaskWithExpirationHandler: ^{
[application endBackgroundTask:bgTask];
}];


これで、10分限りのバックグラウンド動作します。

では、シミュレータRun!

ホームボタンを押して、しばらくしてからBGTimerのアイコンをクリック
1302217.png
カウント値が増えていました。

どうでしょうか?
うまくいきましたか?
簡単でしょう!

今回はこれで終わり。

次回は、せっかくバックグラウンド動作したので
ちょっと遊んじゃましょう!
THEME:プログラミング | GENRE:コンピュータ |

お宮参り

今日は、お宮参り

場所は、森戸神社
http://www.moritojinja.com
DSC_0796.jpg

ここは、お参りにくるだけで癒されてしまう場所です。

柔らかな波の音が聞こえる、境内に入り祈願。

終わった後は、神社裏の海へ!

今、最盛期のワカメ!

DSC_0832.jpg

ここに来たら息子は、

海へ、ぼちゃん!←息子語
DSC_0823.jpg

あれ!?

いつの間に?

そんな大きな石を投げられる様になったんだ?

DSC_0831.jpg

久しぶりに着た、スーツ・・・。

今日は、富士山がみえないなぁ〜
DSC_0811.jpg

DSC_0814.jpg

DSC_0815.jpg

DSC_0825.jpg

充電完了!

プレゼントは

色々と悩みましたが

これ!
2013-02-22 17-35-53

iPad mini

いつもは、
私のおさがりで、iphone 3GをWifi環境で使用していました。

やっぱり、遅さを感じているようで・・・。

思い切って買いました。

それも、Apple Store刻印あり

注文したのは、2013年2月15日

注文すると発送は3〜5日後と表示

発送?て何?

カラクリは、こんな感じ
padmini発送
日本のAppleStoreからの発送ではなく、中国の深センからの直送です。

なぁ~る、ホド。

発送という表現は、なかなかいいかも。

で、

予定より早く、次の日には発送になりました。

なんか、それからが凄くながぁ〜く感じて

日本のADSC支店(Apple Delivery Support Center)に到着してから3日も〜。

しかし、これを見て

Made in china なんだなぁ〜と、つくづく思ってしまいました。

で、フイルムとかカバーとか迷いましたが、これにしました。


こんな大きなフイルムを貼るのは初めて

もうすぐ3歳になる息子は、

ぼくがやるぅ~と、泣くし・・・。

かなり、ドキ!ドキ!しましたが

硬いフイルムなので、ホームボタンとフイルムの穴の位置をあわせをして

えいやぁ~!

で、気泡も無く綺麗に貼る事ができました。

よかった。

カバーの方は、手触りも悪くなくそれなりにグリップ感があり
半透明で刻印もみえてばっちりです。

どうせ、息子も遊ぶんだから、落とされても大丈夫なようにと
↓これも考えましたが・・・。



AppleCare+に入ったので、2回まで大丈夫!?

かあちゃんの誕生日

誕生日ということで

神奈川県逗子市の小坪にある

BETTEI(別邸)に行ってきた。
http://www.linca-garden.com
地元の食材を使ったお店

そして、お願いしたのは

小坪産 サザエのピザ
2013-02-20 16-59-59
2013-02-20 17-00-04

くぅ〜、サザエですよ!

アサリのスパゲッティ
2013-02-20 17-00-09

そして、湘南しらすピラフゴルゴンゾーラ(撮るの忘れた)

はぁ〜、うまい

ワインが飲みたくなるよぉ〜!

なんか、自分の誕生日みたいだ・・・。

かあちゃん、誕生日おめでとう!


iOS Singletone の使い方 勉強 #7

今回は、iOS Singletone の使い方 勉強 #6の続きブラッシュアップです。

まずは、
アプリを実行した時に、一瞬ですが
1302127.png
↑この初期値が見えて、かっこ悪いので
- (void)viewDidLoadの所に
1302128.png
これ
単純ですが、見た目がよくなります。

次に、アイコン
1302121.png

使うアイコンは、これ
watch.pngwatch@2x.png
Tools.pngTools@2x.png

これを、Supporting.Filesのドロップ
1302122.png

MainStoryboard.storyboardをクリックして
FirstViewへ
1302123.png

[1]クリック
1302124.png
[2] TIMERと入力
[3] Watch.pngを選択

SecondViewも同じく
1302125.png
[2] SETTINGと入力
[3] Tools.pngを選択

これで、アイコンの設定がおわりました。

では、
シミュレータRun!
1302126.png

ふむ、ふむ、
アイコンが変わり、いい感じになりました。

ふぅ〜、長かったなぁ〜

今回で、Singletoneの勉強はおわり。

けど


かなり、心残りというか、残念な所が・・・。

このタイマーアプリの最大欠点

バックグラウンドで実行できない

< 言い訳 >
バックグラウンドでの処理にもよりますが、iOSは10分までしか
許可してくれないみたいです。

と、言う事で

今回は、バックグラウンドでの処理は入れませんでした。

もしかしたら、何か方法があるかもしれません。
その時は、追加で勉強したいと思います。


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iOS Singletone の使い方 勉強 #6

今回は、iOS Singletone の使い方 勉強 #5の続き
タイマーの時間が0になった時、タイマー音がなるようにします。

音が鳴らせる様に準備
1302107.png
ピッ、ピッ、ピッ、と 順番に押して

ビュンとでたら
1302108.png
AVFoundation.frameworkを選んで Add

こんな感じになる
1302109.png

左側のproject Navigatorにも新しく追加されているので
1302111.png
Frameworksに移動する。
1302112.png
こんな感じです。

これで、音が使える様になりました。

では、プログラムの方へ

FirstViewController.hをクリックして
1302113.png
#import <AVFoundation/AVFoundation.h> を追加

アラームを鳴らす場所は!?

FirstViewController.mをクリックして
timer_count += 1; の所へ、
1302115.png
    while ( timer_SW ) {
if (timer_count == timer_time ) {
NSLog(@"ピピピ");
} else {
timer_count += 1; // 1秒ずつ加算
}
break;
}
ごっそり改造してみた。

まずは、実験でアラームの代わりに、ログに”ピピピ”と出力される。

シミュレータRun!
1302116.png
0で止まる様になって、0になるとログに1秒間隔で”ピピピ”と表示され
STOPを押すと止まる。

成功!

では、本当に音を鳴らしましょう!
これって、対戦ゲームを作ろうでやったなぁ〜。

今回使う音は、これ
アラーム音

これを、Supporting Filesにドロップ
1302117.png

まずは、変数を宣言
FirstViewController.hをクリックして
1302118.png
AVAudioPlayer *timer_alarm;を追加

次は、FirstViewController.mをクリックして
- (void)viewDidLoadの所に、音を鳴らす準備をします。
1302119.png
NSString *timer_alarm_path = [[NSBundle mainBundle] pathForResource:@"ALM" ofType:@"mp3"];
NSURL *timer_alarm_url = [NSURL fileURLWithPath:timer_alarm_path];
timer_alarm = [[AVAudioPlayer alloc] initWithContentsOfURL:timer_alarm_url error:nil];
timer_alarm.volume *= 1.0; // 音量


先ほどログに”ピピピ”と表示させた所に音を鳴らすように変更
1302120.png

もう一つ大事な設定が!

いまの状態では、スリープの設定時間がくると勝手にスリープモード突入です。

スリープモードをキャンセルするおまじないを追加します。

- (void)viewDidLoadの所におまじないを、
UIApplication* application = [UIApplication sharedApplication];
application.idleTimerDisabled = YES;

これで、スリープモードキャンセル

大分タイマーらしくなってきたので今回は終わり。

次回は、ちょっとブラッシュアップします。

*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

バレンタインデー

奥さんが、バレンタインデーにデザートを作ってくれた。

チョコプリンの上に、大きな
2013-02-16 11-25-14

いただきまぁ〜す。

チョコレートの苦さと苺の甘酸っぱい、絶妙なバランス

美味しかった。

お返しは



と、子供の頃を思い出してみた

マシュマロは「嫌い」



あれ?

キャンディーが「お友達」?

クッキーが「好き」?

どうだったかな?

忘れちゃったなぁ〜

iOS Singletone の使い方 勉強 #5

今回は、iOS Singletone の使い方 勉強 #4の続きでタイマー部分の制御です。

MainStoryboard.storyboardをクリックしてSecondを表示

Label 1個、Button 9個 ドラッグ&ドロップで配置します。
1302083.png
↑こんな感じ

Labelをクリックして
1302084.png
↑こんな感じにして

次は、Buttonを変更
1302085.png
↑こんな感じ

残りのButtonも変更して
1302086.png
↑こんな感じ

では、いつもの連携のおまじない。
Editorの真ん中を押して
1302066.png
SecondViewController.hにして

Labelをクリック
マウス右ボタンでドラッグ&ドロップ
1302088.png

ビュンとでてきたら

Nema にlbl_timer_time と入力して
1302089.png
Connectをクリック

自動的に記載される
1302090.png

次は、Buttonの連携
1:00のボタンをクリックして
マウス右ボタンでドラッグ&ドロップ
1302091.png

ビュンとでたら

1302092.png
Connection → Action
Name → lbl_timer_01min
Connect をクリック

自動的に記載される
1302093.png

残りのButtonも同じ要領で連携
1302094.png

こんな感じになります。

ふぅ〜、
この単純作業は、思ったより大変だなぁ〜

では、各Buttonが押されたらそれに対応した値が
lbl_timer_timeに表示されるようにしましょう。

ここをクリックして表示を切り替えて
1302019.png
SecondViewController.mをクリック

1302095.png

ずら〜りと並んでいるなぁ〜・・・。

では、めげずに

1302096.png

疲れた・・・。
処理を一つにまとめられそうだけど・・。
とりあえず、頑張ろう!

シミュレータRun!
1302097.png

成功!

では、この値をSingletoneに代入しましょう!
まずは、Singletoneで変数を作ります。
Singletone.hをクリック
1302098.png
NSInteger timer_time;
@property NSInteger timer_time;

Singletone.mをクリック
1302099.png
@synthesize timer_time;

これで、変数宣言終わりです。
残りは、各Buttonを・・・、地道に・・・。

- (IBAction)btn_timer_01min:(id)sender {
self.lbl_timer_time.text = @"1:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*1 ;
}

- (IBAction)btn_timer_02min:(id)sender {
self.lbl_timer_time.text = @"2:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*2 ;
}

- (IBAction)btn_timer_03min:(id)sender {
self.lbl_timer_time.text = @"3:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*3 ;
}

- (IBAction)btn_timer_05min:(id)sender {
self.lbl_timer_time.text = @"5:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*5 ;
}

- (IBAction)btn_timer_10min:(id)sender {
self.lbl_timer_time.text = @"10:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*10 ;
}

- (IBAction)btn_timer_15min:(id)sender {
self.lbl_timer_time.text = @"15:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*15 ;
}

- (IBAction)btn_timer_30min:(id)sender {
self.lbl_timer_time.text = @"30:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*30 ;
}

- (IBAction)btn_timer_45min:(id)sender {
self.lbl_timer_time.text = @"45:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*45 ;
}

- (IBAction)btn_timer_60min:(id)sender {
self.lbl_timer_time.text = @"60:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*60 ;
}


長過ぎぃ〜〜〜〜!!

では、これを受け取りましょう!

FirstViewContorller.mをクリックして
ここで受け取ります。
1302100.png
timer_time = 60*3;をコメントにして
下に記載します。

1302101.png
timer_time = sharedData.timer_time;
これで、timer_timeに代入されたのですが、sharedData.timer_timeの初期値が0なので
STARTを押した瞬間 マイナス表示になってしまいます。
初期値を3分にしましょう。

どこで初期値処理、しようかな〜。

せっかくなんで、Singletone.mの初期値処理に記入。
偶然動いていたTimeの方 [ AM/PM 24h切り替え ] の、sharedData.seg_time_chgも一緒に
初期値処理しましょう。
1302102.png
seg_time_chg = 0 ;
timer_time = 60 * 3; 

シミュレータRun!

Timer START!
1302103.png

成功!

でも・・・・。

これでは、Singletoneで指定した初期値がSecondViewに反映されない・・。

では、SecondViewに反映されるように処理を入れましょう。

SecondViewController.mをクリックして
- (void)viewDidLoad の所に
1302104.png
    // Singletoneの設定
Singletone* sharedData = [Singletone sharedManager];

// AM/PM 初期設定
[self.seg_time setSelectedSegmentIndex:sharedData.seg_time_chg];

// タイマー時間 初期設定
NSInteger set_timer = sharedData.timer_time;
NSInteger set_timer_min = set_timer / 60;
NSInteger set_timer_sec = set_timer - ( set_timer_min * 60 );

self.lbl_timer_time.text = [NSString stringWithFormat:@"%02d:%02d",set_timer_min,set_timer_sec];


では、シミュレータ!と
その前に ちょっと、意地悪して
Singletone.mの初期値を変更
時間表示 24h / タイマー時間を 4:56
seg_time_chg = 1 ;
timer_time = 60 * 4 + 56;
と変更して

シミュレータRun!
1302105.png1302106.png
めでたく!
成功!

今回はこれで終わり

次回は、Timerが0になったら、音を鳴らします。

*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iOS Singletone の使い方 勉強 #4

今回はiOS Singletone の使い方 勉強 #3の続きです。

やっと
Singletoneの実装です

いきなり、Singletoneの部分を実装しちゃいましょう!
マウスの右ボタンで
1302058.png
New File...を選んで
1302058.png

1302059.png

1302060.png

最後に
1302061.png
Createをクリック

クラスが出来ました。
1302062.png


ここに書くSingletoneのソースコードは、ググれば沢山でてきますが
これにします。

Singletone.h
#import <Foundation/Foundation.h>
@interface Singletone : NSObject
+(Singletone*)sharedManager;
+(id)allocWithZone:(NSZone*)zone;

@end


Singletone.m
#import "Singletone.h"

@implementation Singletone
static Singletone* _sharedManager = nil;

- (id)init
{
self = [super init];
if (self) {
// 初期処理
}
return self;
}

+ (Singletone*)sharedManager {
@synchronized(self) {
if (_sharedManager == nil) {
(void) [[self alloc] init]; // ここでは代入していない
}
}
return _sharedManager;
}

+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self) {
if (_sharedManager == nil) {
_sharedManager = [super allocWithZone:zone];
return _sharedManager; // 最初の割り当てで代入し、返す
}
}
return nil; // 以降の割り当てではnilを返すようにする
}

- (id)copyWithZone:(NSZone *)zone{
return self;
}

@end

以上、
これでSingletoneの実装は完了です。

では、このSingletoneを使用して
日時の時間表記、AM/PMと24Hの切り替えを行える様にしましょう。

Second Viewに部品を配置

MainStoryboard.storyboardをクリックして
Second Viewが見えるようにして、今配置してあるもの全て削除します。
1302057.png

真っ白になりました。
部品を配置しましょう。
Segmented Contorolをドラッグ&ドロップして
1302063.png

Segmented Contorolをクリック
1302064.png
Segment 0 を選んで AM/PMと入力

1302065.png
Segment 1 を選んで 24hと入力

では、連携
Editorの真ん中を押して
1302066.png
SecondViewController.hにして

Segmented Contorolをクリック

マウスの右ボタンでドラッグ&ドロップ
1302067.png

Nameにseg_timeと入れて
1302068.png
Connectをクリック

自動的に表記される
1302069.png

もう一回Segmented Contorolを連携
マウスの右ボタンでドラッグ&ドロップして
1302070.png
Connection → Action
Name → btn_seg_time

これで、連携完了

Editorのここを押して
1302019.png
表示を切り替えて

SecondViewController.mをクリック
- (IBAction)btn_seg_time:(id)sender の所に
1302071.png

では、シミュレータRun!
こんどは、ちょっと違います
1302072.png
下側のSecondをクリックして、Viewを切り替えて

AM/PMと24hをクリックすると・・。
ログに
1302073.png
0と1が表示されれば成功!

では、この値をSingletoneしちゃいましょう!

まず、受け渡す為に変数を宣言します。
Singletoneで受け取るので、Singletoneの方で宣言します。

Singeltone.hをクリック
1302074.png
NSInteger seg_time_chg;
@property NSInteger seg_time_chg;
を追加

Singeltone.mをクリック
1302076.png
@synthesize seg_time_chg;

では、変数seg_time_chgに数値を代入しましょう。

SecondViewContoroller.hをクリックして
#import "Singeltone.h"を追加
1302075.png

SecondViewContoroller.mをクリック
1302077.png
    Singletone* sharedData = [Singletone sharedManager];
sharedData.seg_time_chg = sgm_time_index;


これで、seg_time_chgに数値が代入されました。

このseg_time_chgをFirstViewの方で受け取ります。

FirstViewController.hをクリック
1302078.png
#import "Singletone.h"を追加

FirstViewController.mをクリック
時間表時部分のプログラムです。

時間表記部分でseg_time_chgを受け取り時計の表示変更します。
seg_time_chgが[0]がAM/PM [1]の時24時間表記。
1302079.png
    // 現在の時間表示
// Singletoneからデータを取得
Singletone* sharedData = [Singletone sharedManager];

// AM / PM / 24h
NSString *time_AMPM = @"";

// AM / PM : sharedData.seg_time_chg = 0
if (sharedData.seg_time_chg == 0) {
if (nowdateComp.hour < 12 ) {
time_AMPM = @"AM";
}else{
time_AMPM = @"PM";
nowdateComp.hour = nowdateComp.hour - 12;
}
}

// 24h : sharedData.seg_time_chg = 1
// 表示変更しないので、なにもしない。

// 時間表示
self.lbl_time.text = [NSString stringWithFormat:@"%02d:%02d:%02d %@ ",
nowdateComp.hour,
nowdateComp.minute,
nowdateComp.second,
time_AMPM];


よし!
シミュレータRun!
[ AM ]
1302080.png

[ PM ]
1302081.png

[ 24h ]
1302082.png

動いたぁ〜〜〜〜!
ちょっと、AM/PMでかすぎ・・。

今回は、これで終わり

次回は、タイマー部分を制御します。

*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iOS Singletone の使い方 勉強 #3

今回は、iOS Singletone の使い方 勉強 #2の続き
タイマー部分の実装です。

まずは、部品を配置
MainStoryboard.storyboardをクリック
Labelを1個とbutoonを3個配置
1302033.png

Labelをクリックして
1302034.png
こんな感じで変更

次は、ボタン関係
1302035.png
こんな感じで、「START」「STOP」「CLEAR」に変更

レイアウトを微調整して
1302036.png
こんな感じになりました。

恒例のおまじないの連携!
Editorの真ん中をおして、FirstViewController.hになっているのを確認して
1302013.png

Labelをクリック
1302037.png
マウス右ボタンでLabelをドラッグ&ドロップ

ビュンとでてきたら
1302038.png
lbl_timer_timeと入力してConnectをクリック

自動的に作られて連携終了
1302039.png

次は、Button
同じように、STARTボタンをクリックして
マウス右ボタンでSTARTボタンをドラッグ&ドロップ
1302040.png

ビュンとでてきたら
1302041.png
Connection → Action
Name → btn_timer_start
Connectをクリック

自動的に作られて連携終了
1302042.png

残りのSTOP、CLEARも同じように

[ STOP ]
1302043.png

[ CLEAR ]
1302044.png

START、STOP、CLEARのすべて 連携終了
1302045.png

これで、準備終了

プログラムを書いていきます。

Editorの表示を切り替えて
1302019.png

FirstViewController.hをクリックして
変数宣言をします。
1302046.png
int timer_time,timer_count,timer_min,timer_sec; 追加

プログラムの方は、
日時表示に使用しているタイマーをそのまま使います。

FirstViewController.mをクリックして
日付表示の下にこんな感じ
1302047.png
足し算、引き算だけ?

[ 説明 ]
タイマーLabelの設定を3分にしたので、timer_timeを60秒×3
タイマーは1秒間隔で動いているので、timer_count を1加算
timer_sec = timer_time - timer_count 残りのsec数を計算
timer_secからmin数を計算 timer_min = timer_sec /60
timer_secから、minのぶんを減算 timer_sec = timer_sec - timer_min * 60

そして、計算したのをログ出力

シュミレータRun!
1302048.png
成功!

そのまま、lbl_timer_timeに表示して
1302049.png

シミュレータRun!
1302050.png
いぇ〜い♪


次は、START、STOP、CLEARのボタンでこのタイマーを制御します。

まずは、タイマーのON/OFF用の変数を宣言

FirstViewController.hをクリック
BOOL timer_SW;変数宣言
1302051.png

FirstViewController.mをクリック
TimerをOFFにするには、変数timer_countをカウントしなければいいので
timer_count += 1;の所にif文とtimer_SWを使用して
1302053.png
これで、変数 timer_SW の YES/NO でタイマーの制御ができるようになりました。

では、最後に各ボタンの動きをプログラムします。
ボタンを連携させた時に自動的に出来ているところに追記します。

STARTボタンの制御
1302054.png
timer_SW = YES;を追記

STOPボタンの制御
1302055.png
timer_SW = NO;を追記

CLEARボタンの制御
1302056.png
CLEARは、カウントを戻すので
timer_count = 0;を追記

シミュレータRun!

ぐぅ〜♪

ボタンを押しても1秒間隔でしか、更新されず反応が鈍く感じるけど
思い通りに制御できているので

今回はこれで終わりぃ〜〜♪

次回は、本題のsingletoneを追加して、SecondViewで制御していきます。


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iOS Singletone の使い方 勉強 #2

今回は、「iOS Singletone の使い方 勉強 #1」の続き

どんな、アプリを作ってSingletoneの勉強するかなぁ〜?

よし!
今回はこれ
130210_130210093344.jpg

タイマーアプリ。
キッチンタイマーともいうかな?

B側がタイマー設定画面設定
A側が実行画面
B側の設定は、今回勉強のSingletoneを使用する。

今回使用するシステムは
Xcode 4.6 / Mac OS X 10.8.2

まずは、プロジェクトファイルの作成
「Create a new Xcode project」 をクリック
1302004.png

Tabbed Application → Next
1302005.png

Product Name に今回は「TimerApp」を入力
1302006.png
「Next」→ 「Create」
ここで、プロジェクトファイルの完成。

MainStoryboard.storyboardをクリックすると
いつもと違う画面が・・。

1302007.png

負けてたまるか!←なにに?

まずは、「First View」をクリック
バシ!ばし!と、今あるラベル類を選んで削除。
1302008.png
へへ、
真っ白にしてやったぜ!

今回は、現在の日時の表示部分を作成します。

日付と時間を表示させる、ラベルをドラッグ&ドロップで2個配置
1302009.png

まずは、日付用のラベルをクリックして
1302010.png
こんな感じで入力

次は、時間用のラベルをクリックして
1302011.png
こんな感じに入力

最後に、レイアウトをいい感じに修正して
1302012.png
うん、いい感じ♪

「Editor」の真ん中を押して「FirstViewController.h」になっている事を確認
1302013.png

では、連携
日付ラベルをクリックして
次は、右ドラッグ(無い場合は+Control)しながら、びゆ〜〜〜んと、ここでドロップ
1302014.png

びゅ〜んと、出たら「lbl_date」と入力して
1302015.png
Connectをクリック

こんな、メッセージが勝手に作られて連携終了。
1302016.png

同じく、時間用ラベルをドラッグ&ドロップして
「lbl_time」と入力して
1302017.png
Connectをクリック

1302018.png

連携完了

つぎは、日時を表示させるタイマーを設定。
エディタの表示切り替え
1302019.png
ここをクリック

FirstViewController.hをクリックして
NStimer *now_timer の変数宣言
1302020.png

次にFirstViewController.mをクリック
viewDidLoadの所に日時のタイマーを設定
1302021.png

次に、日時の処理。
難しいのは後にして、
まずは、ログに”1sec"と表示するようにして
1302022.png

シミュレータRun!
1302023.png
タイマー設定 成功!

では、ちょっと複雑な
日時をゲットしてラベルに表示させるぞ!

タイマー処理の所に、日時取得プログラムを
1302024.png
確認の為のログに年(year)を出力させるようにして

シュミレーターRun!
1302025.png
ログに2013出力された。

では、取得した日時を元にlbl_timeに時間を出力するようにして
1302026.png

シミュレータRun!
1302027.png
おぉ〜!
現在の時刻が表示された!
成功!

次は、日付関係だ
まずは、端末に設定されている言語環境の書式に従って曜日情報を取得
1302028.png

ここの言語環境の書式が日本に設定されていれば
1302032.png
配列weekdaySymbolsに、日、月、火、水、木、金、土が入る。

日付関係はnowdatecompから曜日の表記はweekdaysymbolsを元に
lbl_dateに日付を出力
1302029.png

よし!
シミュレータRun!
1302030.png

あれ?
曜日が、英語だ。
なら、実機で確認
1302031.png
実機では、(月)になっている。
シミュレータは、言語環境の書式がUSなのかな?
どこで、変更するんだろう?誰か知っていたら教えてください。

今回は、これで終わり。

次回は、タイマー部分のプログラミング〜♪

う〜ん、ブログを書いている時間がバレバレだなぁ〜。


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

三連休 最終日はドライブ

今日は、三連休の最終日

渋滞を覚悟で、ドライブ♪

湘南国際村からトンネルを抜けたこの風景は
いつ見ても最高♪
2013-02-11 17-46-34

そのまま、海岸線沿いを走りすかなごっそで新鮮野菜を買い込み
三浦海岸
2013-02-11 17-46-42
車の窓を開けると
まだ、寒いかな。

しかぁ〜し!
予想以上の渋滞・・・。

ここで、時間切れ

出かけるときに、仕掛けてきた
ホームベーカリーの焼き上がり時間まであと40分
残念



帰路へ

家に帰ると、アツアツの焼きたてのパン
待っていた!
2013-02-11 18-03-28

お気に入りのビクトリノックス( Victorinox )のブレッドナイフで
2013-02-11 18-03-22
切れ味、ぐぅ〜〜〜♪

いただきまぁ〜す♪

今日は、体を動かしてリフレッシュ!

もうすぐ3歳の息子が
トイザラスで買った
バット

ボール

持って野球をしたぁ〜い!と、

自分も毎日、室内トレーニングばかり
たまには、外で体を動かすのもね

リフレッシュもかねて
近くの、湘南国際村

今日は、雲が多いなぁ〜
2013-02-09 17-28-56

2013-02-09 17-28-48
しかし、
いつも、見とれてしまう光景・・・。

さて、さて、
野球は!?

あれ?
よ〜い、ドン!

かけっこ




階段と滑り台を使ったコースを5周ほど

体は温まり、心もリフレッシュ

ふと、見上げてみると
あの分厚い雲はどこへ?
2013-02-09 17-28-44

海側をみると
2013-02-09 17-28-38
おぉ〜!

また、遊びにこよう!

iOS Singletone の使い方 勉強 #1

アプリを本格的に作ろうと、脳みそをフル回転

ある疑問にブチ当った!

あれ!
クラス間の変数のやりとりは?

例えば AとBのクラスがあった場合
Bの変数をAでは見る事ができるけど、Aの変数をBでみるには???
1302002.png
早速ググってみたぞ!

いい所を見つけた!

感謝!

画面間でのデータの受け渡しに付いて

externを使えばひとまず解決!!



しかし、気になる分が・・・。

「(1-b)シングルトンオブジェクト
 シングルトン+Objective-Cでググってくれ」


うぅ〜〜〜

探究心
メラメラだぜ!

実はここから、結構ハマった・・・。

突破口は、これ
ありがとうございます。

ふぅ〜、これで今日は寝られそうだよ〜。

解決方法は、こんな感じ。
経由の役割をしてくれるCクラスを作り、このCを経由してやりとりする。
そして、このCには、ちょっとした仕組みがされいる。

Cのインスタンは、重複宣言されない。

例えば、最初にAでCのインスタンスを宣言して、Dateに2013/01/01を入れる
Bで同じようにCのインスタンスを宣言すると、Dateの値は初期化されず
Aで代入した値を維持する。
その為、Aで代入したDateの値2013/0101を読み出す事ができるわけです。
もちろん、Bで代入(変更)することもできます。

図で書くとこんな感じ
1302003.png

次回は、実践!

素人な事書いているなぁ〜、そんなブログになるといいなぁ〜


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iPhone iOSで対戦型ゲームを作ろう!まとめ

まとめ
いや〜、むちゃくちゃなソースコードになっちゃったなぁ〜
小さく反省

今回お世話になった、フリー素材のHPアドレス
■フリー素材画像
イラストがすべて無料 「イラストAC」

■フリー素材
フリー(無料)音楽素材 BGM 効果音 Senses Circuit


--* ページのまとめ *--
1.iPhone iOSで対戦型ゲームを作ろう!#1
2.iPhone iOSで対戦型ゲームを作ろう!#2
3.iPhone iOSで対戦型ゲームを作ろう!#3
4.iPhone iOSで対戦型ゲームを作ろう!#4
5.iPhone iOSで対戦型ゲームを作ろう!#5
6.iPhone iOSで対戦型ゲームを作ろう!#6
7.iPhone iOSで対戦型ゲームを作ろう!#7
8.iPhone iOSで対戦型ゲームを作ろう!#8
9.iPhone iOSで対戦型ゲームを作ろう!#9
10.iPhone iOSで対戦型ゲームを作ろう!まとめ
THEME:プログラミング | GENRE:コンピュータ |

iPhone iOSで対戦型ゲームを作ろう!#9

今回は、効果音をつけちゃいます。

まずは、敵UFOが弾に当たった時の効果音

音を鳴らす為の準備
[1][2][3]とクリックして
1301199.png

びよ〜ん♪

出てきたら
[1]AVFoundation.framework を選んで [2]Add
1301200.png
出来立ての AVFoundation.framework を Frameworksに移動
1301201.png
こんな感じ
1301202.png

これで、音が使えるようになりました。

では、プログラムの方へ

TekiUFO.hを選んで
#import <AVFoundation/AVFoundation.h> を追加
1301203.png

AVAudioPlayer *TekiUFO_Hit_player; 変数宣言して
1301204.png

音はこれ
敵ヒット効果音←ダウンロードして使ってね

Supporting Filesにドロップして
1301205.png

次は、敵UFOが弾に当たった時に音が鳴るようにする。
今回は、ちょっと賢くやろう
awakeFromNib で音の仕込みをする。

TekiUFO.mを選んで
1301207.png
こんな感じ

次に、敵UFOに弾が当たった所で音の再生
[TekiUFO_Hit_player play]; を追加
1301208.png

よし、
シミュレータRun!
音が鳴った!

次は、MyUFOの効果音
同じ要領で
MyUFO.hを選択して
#import <AVFoundation/AVFoundation.h> を追加
AVAudioPlayer *MyUFO_Hit_player; 変数宣言
1301209.png

音はこれ
MyUFOヒット効果音←ダウンロードして使ってね
Supporting Filesにドロップ

awakeFromNib に仕込み
1301210.png

そして、当たり判定の所に
[MyUFO_Hit_player play];
1301211.png

シミュレータRun!
おぉー!
それらしくなった。

もう一つ、BGMも追加だぁー!
音はこれ
BGM←ダウンロードして使ってね
Supporting Files にドロップ

場所は、
初の ViewController

ViewControllwe.h を選んで
#import <AVFoundation/AVFoundation.h> と
AVAudioPlayer *BGM_player; を追加
1301212.png

最初に実行される場所 viewDidLoad に同じ要領で
1301213.png
ループ再生するので
BGM_player.numberOfLoops = -1;

音量もBGMらしく小さく
BGM_player.volume *= 0.1;

よし!
シミュレータRun!

おお!いい感じ!
サイコー!

でも、ループする時にBGMが途切れる感じが・・・。
色々と試してみると、wave、Aiffであれば問題ないので
mp3だけの問題? 圧縮時の問題?

誰か知っていたら教えてくださ〜い

今回は、これで終わり

では、なくて

実機でもう少しリアリティをあげるのに
MyUFOにうんちに当ったら、バイブレーターを動かしちゃいましょう!

まずは、Frameworkの追加
1301199.png
AudioToolbox.framework を選んで
1301214.png

Frameworksに移動
1301215.png

MyUFO.hを選んで
#import <AudioToolbox/AudioToolbox.h>を追加
1301216.png

MyUFO.mを選んで
当り判定の所に(効果音再生の下)
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);を追加
1301217.png

簡単でしょう。

では、実機で確認
1301218.jpg

おぉー!
バイブレーターが動いている!

今回でiPhone iOSで対戦型ゲームを作ろう!は、終わりです。
ふぅ〜長かった。
ブログ書きながら、プログラミングしてきたので間違いは少ないと思うけど
バグあったら教えてください。
修正します。

これを元に、ブラッシュアップさせてアプリ登録できればと・・・。
相当先かなぁ〜。

--* ページのまとめ *--
1.iPhone iOSで対戦型ゲームを作ろう!#1
2.iPhone iOSで対戦型ゲームを作ろう!#2
3.iPhone iOSで対戦型ゲームを作ろう!#3
4.iPhone iOSで対戦型ゲームを作ろう!#4
5.iPhone iOSで対戦型ゲームを作ろう!#5
6.iPhone iOSで対戦型ゲームを作ろう!#6
7.iPhone iOSで対戦型ゲームを作ろう!#7
8.iPhone iOSで対戦型ゲームを作ろう!#8
9.iPhone iOSで対戦型ゲームを作ろう!#9
10.iPhone iOSで対戦型ゲームを作ろう!まとめ
THEME:プログラミング | GENRE:コンピュータ |

iPhone iOSで対戦型ゲームを作ろう!#8

今回は、MyUFOの当たり判定とアニメーション

やり方は、敵UFOと同じ要領

まずは、定期的に当たり判定の確認をする為のタイマー設定。
MyUFO.hにタイマー用の NSTimer *myhit_timer;
1301184.png

MyUFO.m の awakeFromNib にタイマーを設定
1301185.png

タイマー処理は、とりあえずログの出力
1301186.png
シミュレータRun!

chkが連続で表示され成功!
タイマーの設定は終わり

このタイマー処理の所にうこの位置座標とMyUFOの位置座標の
比較をして当たり判定を行う

今の状態では、うこの位置座標が見えないので
MyUFO.hに #import "UnkoBom.h" を追加

もうひとつ、おまじない文と連携
ややこしいですが、大文字小文字も注意
1301187.png
もうひとつ、おまじない
1301188.png

MyUFO.mにも @synthesize unkoBom; のおまじない文
1301189.png

これで、unkoBomの位置座標が見えるようになった。
では、当たり判定を・・・。

TekiUFO.mから当たり判定の部分をコピペして修正
1301190.png

よっしゃー!
シミュレータ Run!

ち が当たるとろぐに"やられたぁ〜"が表示された。
成功!
次は、フラフラアニメ

フラグ、myhit_cを宣言して
1301191.png

当たり判定の部分に if 分を追加して
1301192.png
条件が成立すれば、フラフラのインスタンスへ

フラフラ処理は、敵UFOと同じ要領で
pngをSupporting Filesにドロップ
MyUFO01.pngMyUFO02.png
1301193.png

フラフラのアニメーション処理は、TekiUFO.mからコピペして修正
こんな感じ
1301194.png

最後にMyUFOのImage の適用を変更
MainStoryboard.storyboardをクリックしてをクリック
Backugroundを空白にしてImageにMyUFO.pngを適用
1301195.png

これで、完了
シミュレータRun!
1301196.png

フラフラしちゃっているぞぉ〜!
成功!
ちょっと、MyUFOが欠けちゃっているけど・・・。

最後にバックグランドのイメージの適用
SuportingFilesにbackimg.jpgファイルをドロップして
backimg.jpg
Maystoryboard.storyboardをクリックして一番下にあるImageViewをクリックして
Imageでbackimg.jpを選択
1301197.png

シミュレータ Run!
1301198.jpg

それらしくなったよ。
よかった。

今回は、これで終わり。

次回は、効果音追加しちゃいます〜す!

--* ページのまとめ *--
1.iPhone iOSで対戦型ゲームを作ろう!#1
2.iPhone iOSで対戦型ゲームを作ろう!#2
3.iPhone iOSで対戦型ゲームを作ろう!#3
4.iPhone iOSで対戦型ゲームを作ろう!#4
5.iPhone iOSで対戦型ゲームを作ろう!#5
6.iPhone iOSで対戦型ゲームを作ろう!#6
7.iPhone iOSで対戦型ゲームを作ろう!#7
8.iPhone iOSで対戦型ゲームを作ろう!#8
9.iPhone iOSで対戦型ゲームを作ろう!#9
10.iPhone iOSで対戦型ゲームを作ろう!まとめ
THEME:プログラミング | GENRE:コンピュータ |

iPhone iOSで対戦型ゲームを作ろう!#7

今回は、敵UFOに玉が当たったらフラフラさせちゃうぞ!

フラフラする方法は、iOSが持っているアニメーション機能を使用して実現

この機能に大ハマりしました。

はぁ〜、
書きたい事、書いたので、

スッキリ

今回は、これで終わりでもいいかも






さて、準備です。

まず、ここのハマった部分
MainStoryboard.storyboardを選んでFile inspectorを選んで
「Use Autolayout」のチェックを外す。
1301177.png
本当に、このチェックを外すんですかぁ〜!?
これを外さないと、アニメーションを実行した時にレイアウトが、初期状態に戻ってしまうんですよね

他の方法知っていたら教えてほしいなぁ〜

次は、敵UFOをクリックして
TekiUFO.pngをBackgroundに適用していたので、Imageの方に変更。
1301178.png

アニメション用のpngを「Supporting Files」にドロップ
TekiUFO01.pngTekiUFO02.png

TekiUFO.m に当たったよ!のフラグ用変数 hit_c
1301179.png

敵UFOに玉が当たったら、フラフラアニメーションが終わるまで当たり判定をしない
無敵状態にする
1301180.png
1301181.png
当たり判定の下に、当たったらフラフラのアニメーションを実行させるインスタンスへ
1301182.png

[1]がアニメーションスタート部分
アニメーションが動いていない事を確認して、hit_cが1の時
アニメーションスタート

[2]がアニメーションが終了を確認して無敵モードを解除

hit_c無しでも可能なんだけどね、
ま、個人的な趣味ですかねぇ〜。

はい!
シミュレータRun!
1301183.png

フラフラしちゃってますねぇ!

今回は、これで終わり。

次回は、MyUFOの当たり判定とフラフラです。

もう一個タイマー追加かぁ!?

--* ページのまとめ *--
1.iPhone iOSで対戦型ゲームを作ろう!#1
2.iPhone iOSで対戦型ゲームを作ろう!#2
3.iPhone iOSで対戦型ゲームを作ろう!#3
4.iPhone iOSで対戦型ゲームを作ろう!#4
5.iPhone iOSで対戦型ゲームを作ろう!#5
6.iPhone iOSで対戦型ゲームを作ろう!#6
7.iPhone iOSで対戦型ゲームを作ろう!#7
8.iPhone iOSで対戦型ゲームを作ろう!#8
9.iPhone iOSで対戦型ゲームを作ろう!#9
10.iPhone iOSで対戦型ゲームを作ろう!まとめ
THEME:プログラミング | GENRE:コンピュータ |

今日は大安吉日

いらしゃ〜い♪

迷って、迷い

決めたのが
2013-02-05 08-35-31

いらっしゃ〜い♪

何か足りないような・・・。

節分だぁ〜! と お雛様

久しぶりに、立川に行った。

そういえば、今日は節分 = 豆まきだ!

ならば、阿豆佐味天神社 へ

2013-02-04 11-50-31

ふくわぁ〜♪ うち!
節分満喫♪

次は、本当の目的

お雛様
日の出町へ
2013-02-04 10-25-54
2013-02-04 10-26-00

いやぁ〜、まいったなぁ〜

どれがいいかなぁ〜。

iPhone iOSで対戦型ゲームを作ろう!#6

今回は、玉のあたり判定のプログラム〜。
ついでに、今回から
Xcode 4.6にバージョンアップ!!

さて、さて、どこにあたり判定を置こうかな?



うん?
そもそも、対戦と言っておきながら、勝ち負けの判定(ルール)を考えていなかったりする・・。

う〜ん

それじゃ、飽きるまで無限ループしよ〜と、

では、敵UFOとMyBomのあたり判定

場所は、うんこ発射プログラムと左右移動プログラムの間

判定方法は、楕円と円の距離ではなくて、領域(?)での判定をします。
if文がずらりと並ぶ感じ

まずは、Y座標から考える。
敵UFOの上をMyBOMがY座標方向に通過する時の関係は以下の5通りが考えられる。
1301170.png
2、3、4の時が当たり判定のフラグが立つような条件を考えればいい。

まずは、[2]について よ〜く 考える
1301171.png

敵UFOの上側のY座標の変数が TekiUFO_UP ( Y = 50 )
敵UFOの下側のY座標の変数が TekiUFO_DN ( Y = 115 )
BOMの上側のY座標の変数が BomUP ( Y = 100 )
BOMの下側のY座標の変数が BomDN ( Y = 148 )
とした場合・・・・・、

敵UFOにBomがメリコンでいる部分を
じ〜と、見ていると
1301175.png
BomUP < TekiUFO_DN ( 100 < 115 ) の条件式がみえてくる。 

しか〜し!
このままでは、[5]の時も成立していまうので問題あり
残りの変数 BomDN、TekiUFO_UP を駆使して



難しい・・。

では、ちょっと考え方を変えて[4]の時を考える
座標は、こんな感じ
TekiUFO_UP ( Y = 50 )
TekiUFO_DN ( Y = 115 )
BomUP ( Y = 20 )
BBomDN ( Y = 68 )

同じく、敵UFOにBomがメリコンでいる部分を
じ〜と、見ていると
1301176.png
BomDN > TekiUFO_UP ( 68 > 50 ) の条件式がみえてくる。

[2][4]の合わせ技を使って
1301172.png

BomUP < TekiUFO_DN && BomDN > TekiUFO_UP
となるわけです。
ややこしくなりましたが、
興味のある方は、[1][2][3][4][5]の答え合わせしてみよう!

そして
プログラム部分はこんな感じ
1301173.png
座標取得部分が長くなってしまったけど・・、

シミュレータ Run!
敵UFOとBomがY座標方向で同じになると
LOGに「Hit」が連続で表示されているのがわかる。

成功!

あとは、Y座標と同じ考え方でX座標の条件分を追加
1301174.png
赤い所が、追加した部分

シミュレータ Run!
LOG出力をみると、敵UFOとBomが重なり合った時だけ「Hit」が出力される。

成功!

ふぅ〜、

頭使いすぎたので、今回はこれで終わり。

次回は、Hitしたらそれらしく敵UFOをフラフラさせます。

--* ページのまとめ *--
1.iPhone iOSで対戦型ゲームを作ろう!#1
2.iPhone iOSで対戦型ゲームを作ろう!#2
3.iPhone iOSで対戦型ゲームを作ろう!#3
4.iPhone iOSで対戦型ゲームを作ろう!#4
5.iPhone iOSで対戦型ゲームを作ろう!#5
6.iPhone iOSで対戦型ゲームを作ろう!#6
7.iPhone iOSで対戦型ゲームを作ろう!#7
8.iPhone iOSで対戦型ゲームを作ろう!#8
9.iPhone iOSで対戦型ゲームを作ろう!#9
10.iPhone iOSで対戦型ゲームを作ろう!まとめ
THEME:プログラミング | GENRE:コンピュータ |
 
検索フォーム
QRコード
QRコード
ブロとも申請フォーム
FC2カウンター
ビリリティピルズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。