SnakeyInput
SnakeyInputはcocos2dで利用できるクラスの一つで、手軽に「ジョイスティック」や「ボタン」を作成できます。
利用する前にまずは、SnakeyInputクラスを下記サイトからダウンロードしましょう。 sneakyness/SneakyInput · GitHub
実際に利用するクラスをxcodeに追加する
ダウンロードした「SnakeyInput」を立ち上げてclassを見てみると、いくつかのファイルがあります。
全てを利用するのではなく、必要なファイルを選んでXcodeに追加します。 例えば、「ジョイスティック」の場合は、以下の4つが必要になります。
- SneakyJoystickSkinnedBase.h
- SneakyJoystickSkinnedBase.m
- SneakyJoystick.h
- SneakyJoystick.m
「ボタン」の場合
- ColoredCircleSprite.h
- ColoredCircleSprite.m
- ColoredSquareSprite.h
- ColoredSquareSprite.m
- SneakyButtonSkinnedBase.h
- SneakyButtonSkinnedBase.m
- SneakyButton.h
- SneakyButton.m
ジョイスティックを設置する
任意のレイアー上に、以下のような形でコードを下記設置します。 [c]
skinjoystick = [[SneakyJoystickSkinnedBase alloc] init]; skinjoystick.position =ccp(,);
skinjoystick.backgroundSprite = ;//スプライトを指定 skinjoystick.thumbSprite = ;//スプライトを指定 skinjoystick.joystick = [[SneakyJoystick alloc] initWithRect:CGRectMake(0,0,70,70)];
joystick = skinjoystick.joystick; joystick.autoCenter = YES; //自動的に真ん中に戻すかどうか joystick.hasDeadzone = YES;//ジョイスティックの反応しないエリアを作るかどうか joystick.deadRadius = 10;//反応しないエリアの半径を指定 [self addChild:skinjoystick];
//ジョイスティックの動きはjoystick.velocityで抽出します。 CGPoint point = joystick.velocity;
[/c]
実際のジョイスティックの動きはjoystick.velocityを使って取り出します。 これを使いPlayerを動かしたりします。
ボタンを設置する
任意のレイアー上に、以下のような形でコードを下記設置します。 [c]
skinAttackButton = [[SneakyButtonSkinnedBase alloc] init]; skinAttackButton.position = ccp(0,0); skinAttackButton.defaultSprite =;//基本のスプライト skinAttackButton.activatedSprite = ;//ボタンを押している時のスプライト skinAttackButton.pressSprite = ;//ボタンを離した時のスプライト skinAttackButton.button = [[SneakyButton alloc] initWithRect:CGRectMake(0, 0, 64, 64)]; Button = skinAttackButton.button;
[self addChild:skinAttackButton];
//実際に利用するときには,attackButton.activeを利用する。 -(BOOL)isTouchedButton{
return Button.active;
}
[/c] BOOL型の反応をButton.activeが返してくれます。 これを使い、YESの時に何かしらのアクションを取らせたりします。
さいごに
私はこのように使っています。 自分で実装しなくていいので、手軽に利用できます。興味を持たれた方は是非一度利用してみてください。
cocos2dで作る iPhone&iPadゲームプログラミング Steffen Itterheim,畑 圭輔,坂本 一樹,加藤 寛人,高丘 知央,株式会社 クイープ インプレスジャパン 売り上げランキング : 81343 Amazonで詳しく見る |