2014年2月28日金曜日
2014年2月27日木曜日
cocos2d:CCLineBreakModeがdeprecated
CCLineBreakModeがdeprecatedの場合、頭にkをつける
CCLineBreakModeWordWrap → kCCLineBreakModeWordWrap
CCLineBreakModeCharacterWrap → kCCLineBreakModeCharacterWrap
cocos2d:CCTextAlignmentがdeprecated
CCTextAlignmentの値がdeprecatedの場合、頭にkをつける。
CCTextAlignmentCenter → kCCTextAlignmentCenter
CCTextAlignmentLeft → kCCTextAlignmentLeft
CCTextAlignmentRight → kCCTextAlignmentRight
2014年2月26日水曜日
cocos2dでメニューに画像を使う
CCMenuItemSpriteを使用する
//選択前のボタン CCSprite *nomalButton = [CCSprite spriteWithFile:@"button.png"]; //選択後のボタン(色を暗くした同じ画像) CCSprite *selectedButton = [CCSprite spriteWithFile:@"button.png"]; selectedButton.color = ccc3(64, 64, 64); CCMenuItemSprite *item = [CCMenuItemSprite itemWithNormalSprite:nomalButton selectedSprite:selectedButton target:self selector:@selector(tapButton)]; CCMenu* menu = [CCMenu menuWithItems:item, nil]; [self addChild:menu];
2014年2月25日火曜日
objective-cで数値と文字列の変換
objective-cで数値と文字列の変換
文字列から数値
int tempInt = [tempString intValue];
数値から文字列
NSString *tempString = [NSString stringWithFormat:@"%d", tempInt];
NSDictionaryのキーの存在確認
NSDictionaryのキーの存在確認
標準では確認できるメソッドが無いので以下のようにする
if ([[dictionary allKeys] containsObject:key) { // 存在する場合の処理 }
2014年2月24日月曜日
cocos2dでAppDelegateの取得
cocos2dでAppDelegateの取得
AppController *appDelegate = (AppController *)[[UIApplication sharedApplication] delegate];
2014年2月21日金曜日
cocos2dでポーズの実装と注意点
cocos2dでポーズの実装と注意点
ポーズと解除
//ポーズ [[CCDirector sharedDirector] pause]; //ポーズ解除 [[CCDirector sharedDirector] resume];
注意点
1.ホームボタンでのポーズ
AppDelegateの以下のメソッドにもpause,resumeが書かれている。
- applicationWillResignActive
- applicationDidBecomeActive
これはホームボタンが押されたときに呼ばれる。
これらのメソッドが呼ばれても問題ないようにフラグ等を追加して制御する必要がある。
2.タッチメソッド
ポーズ中でもタッチ機能は生きているので別途無効化する必要がある。
2014年2月20日木曜日
NSUserDefaults
ちょっとしたデータを保存する場合、NSUserDefaultsが便利
NSUserDefaultsの使い方
//取得時のキー NSString *key = @"key"; //保存する文字列 NSString *dataString = @"data"; //保存 NSArray *tempArray = [NSArray arrayWithObject:dataString]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:tempArray forKey:key]; [defaults synchronize]; //保存したデータの取得用 NSString *saveString = nil; //取得 NSArray *array = nil; array = [[NSUserDefaults standardUserDefaults] arrayForKey:key]; if (array != nil) { for (NSString *data in array) { saveString = data ; } }
2014年2月19日水曜日
cocos2dで複数のアクションを同時実行
cocos2dで複数のアクションを同時実行する方法
CCSpawnを使用
id fadeIn = [CCFadeIn actionWithDuration:1.0]; id jump = [CCJumpBy actionWithDuration:1.0 position:ccp(0, 50) height:50 jumps:1]; id spawn = [CCSpawn actions:fadeIn, jump, nil]; [sprite runAction:spawn];
2014年2月18日火曜日
cocos2dでスクロールするレイヤー
Cocos2d「Extensions」を使用してスクロールするレイヤーを実装
ダウンロード
Xcodeに追加
ZIPのExtensions->CCScrollLayerをフォルダごと追加
インポート
#import "CCScrollLayer.h"
初期設定
- (id) init { if ((self = [super init])){ // シーンを複数作成 NSMutableArray *layerArray = [NSMutableArray array]; CCLayer* layer1 = [CCLayer node]; CCLayer* layer2 = [CCLayer node]; CCLayer* layer3 = [CCLayer node]; [layerArray addObject:layer1]; [layerArray addObject:layer2]; [layerArray addObject:layer3]; // CCScrollLayerに追加 CCScrollLayer *scroller = [[CCScrollLayer alloc] initWithLayers:layerArray widthOffset: 0]; //ページインジケーターのポジション scroller.pagesIndicatorPosition = ccp(self.contentSize.width / 2, 60); [self addChild:scroller]; } }
2014年2月17日月曜日
レビューを促すライブラリ『Appirater』
レビューを促すAppiraterの導入手順
1.ダウンロード
githubから、Appiraterをダウンロードする。https://github.com/arashpayan/appirater
2.プロジェクトに追加
ダウンロードしたappirater-masterをプロジェクトに追加。3.不要なファイルの削除
README.mdは不要なので削除。4.フレームワークの追加
プロジェクトにCFNetwork.framework、SystemConfiguration.framework、StoreKit.frameworkを追加する。5.ローカライズ
レビューを催促するときに表示される文言を修正する場合は、ローカライズファイルを修正する。日本語の場合は、AppiraterLocalizable.strings(Japanese)
6.ARC設定
プロジェクトがARCを利用しない場合、TARGETSの Build Phases ≫ Compile Sources sectionを開き、Appirater.mに -fobjc-arc を設定する。7.インポート
AppDelegate.hを修正する。#import "Appirater.h"
8.設定値の修正
AppDelegate.mのapplication:didFinishLaunchingWithOptionsメソッドにAppirater起動の設定を記述する。古いプロジェクトの場合はapplicationDidFinishLaunchingでもよい。[Appirater setAppId:@"000000000"]; // Apple ID(アプリ毎の識別番号:iTunes Connectで参照可) [Appirater setDaysUntilPrompt: 30]; // 同じバージョンで再びメッセージを表示するまでの日数。(デフォルト:30日) [Appirater setUsesUntilPrompt: 20]; // 同じバージョンで再びメッセージを表示するまでの起動回数。(デフォルト:20回) [Appirater setSignificantEventsUntilPrompt: -1]; // ゲームのレベルクリアなど、ユーザーがアプリ内で何か特別な操作したときや、あるレベルに達したときにメッセージを表示するか否かを指定する。(デフォルト:-1) // 値 : -1=無効, 1=有効 // 表示する場合は、ゲームのレベルクリアしたときなど任意の箇所に [Appirater userDidSignificantEvent:YES] を記述する。 [Appirater setTimeBeforeReminding: 1]; // 「後で見る」を選択したときに再びメッセージを表示するまでの日数。(デフォルト:1日) [Appirater setDebug: NO]; // デバッグモードの設定。YESにするとアプリを起動するたびに表示される。(デフォルト:NO) [Appirater appLaunched:YES]; // Appiraterの起動
9. 起動時のカウント
AppDelegate.mのapplicationWillEnterForegroundメソッドに、フォアグランド時にカウントするかの設定を記述する。[Appirater appEnteredForeground:YES];
10.アプリ名
実行時の画面に表示するアプリ名を変更する場合は、Appirater.hを修正する。#define APPIRATER_APP_NAME を修正
2014年2月14日金曜日
cocos2dでのスケジューラーの使い方
//スタート [[[CCDirector sharedDirector] scheduler] scheduleSelector:@selector(hoge) forTarget:self interval:0.5 paused:NO]; //ストップ [[[CCDirector sharedDirector] scheduler] unscheduleSelector:@selector(hoge) forTarget:self]; //ポーズ [[[CCDirector sharedDirector] scheduler] pauseTarget:self]; //ポーズ解除 [[[CCDirector sharedDirector] scheduler] resumeTarget:self];
2014年2月13日木曜日
2本目以降のアプリを申請するときのメモ
Provisioning Profiles(Distribution用)取得
※App IDは先に作っておく
iOS Dev CenterでCertificates, Identifiers & Profiles→Certificates
Distribution→App Store
App ID→そのアプリ用に作ったやつ
出来上がったものをダウンロード→ダブルクリック
※App IDは先に作っておく
iOS Dev CenterでCertificates, Identifiers & Profiles→Certificates
Distribution→App Store
App ID→そのアプリ用に作ったやつ
出来上がったものをダウンロード→ダブルクリック
2014年2月12日水曜日
Validate時に120x120アイコンの警告がでる
XcodeでArchive→Validateをしたときに「120x120」のアイコンに関するワーニングがでた。
120x120のアイコンは「Icon-120.png」で作っていたがどうも変わったらしい(iOS7対応?)
「Icon@2x.png」に変えたら無事にValidateを通過。
前は114×114が「Icon@2x.png」だったはずなのに変わったようだ。
じゃあ、「114×114」のアイコンは不要ってことだろうか。
なんだか納得がいかない。
120x120のアイコンは「Icon-120.png」で作っていたがどうも変わったらしい(iOS7対応?)
「Icon@2x.png」に変えたら無事にValidateを通過。
前は114×114が「Icon@2x.png」だったはずなのに変わったようだ。
じゃあ、「114×114」のアイコンは不要ってことだろうか。
なんだか納得がいかない。
登録:
投稿 (Atom)