今度のゲームはタイミングで勝負!
というテーマで作っています。
具体的にどうやって作っていったらいいかわからないし
正直、EXCEL VBAとかだと
「一瞬のタイミングで」作業することなんかいっさいないわけで
わたしにとって初めての領域。
だから自分なり設計を考えてみました。
まずは、処理の分解して。
1.時間軸を作る
2.なにかのアクション
3.時間軸のなかでなにかのアクションを受け取る(合体)
細かくするとなんか出来そうになるからおもしろいですよね。
1.時間軸を作る
とりあえず、スケジュールをうごかす。
1 2 3 4 |
[self scheduleUpdate]; -(void) update:(ccTime)delta { } |
2.なにかのアクション
ボタンを押すということで
1 2 3 4 5 6 7 8 9 10 11 |
//タッチイベントを検知するようにして self.isTouchEnabled = YES; //ボタン画像の範囲のときだけ処理する的な -(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInView:[touch view]]; location = [[CCDirector sharedDirector]convertToGL:location]; if( CGRectContainsPoint( btn1.boundingBox , location) ){ //なにかのアクション処理 } } |
3.時間軸のなかでなにかのアクションを受け取る
ボタン押した判定と時間軸のタイミングを取得したいからこんな感じかしら
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 |
//ボタン押した判定 BOOL isBtn = NO; //ボタン押していいよ判定(押しちゃだめなときもあるわけで) BOOL isStart = YES; -(void) update:(ccTime)delta { _time= _time + delta; if (isBtn) { CCLOG(@"今でしょ!:%f",_time); isStart = NO; isBtn = NO; } } -(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //画面タッチでボタンだけ UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInView:[touch view]]; location = [[CCDirector sharedDirector]convertToGL:location]; if (isStart) { if( CGRectContainsPoint( btn1.boundingBox , location) ){ isBtn=YES; } } } |
とりあえずはこんな感じでしょうかね。
[…] ■【次のゲームはタイミングで】アプリ開発日記(5/25)|さんぼんばしら -ガチな感じの記事やった。 […]