引っ越しました。

このブログは引っ越しました。
今後は引越し先で更新を続けます。
新しいブログではソースコードにシンタックスカラーを付けているので見やすくなっていると思います。

こちらは数ヶ月後に削除しますのでよろしくお願いします。

2010年11月23日火曜日

引っ越しました。

間違いだらけの iPhone 開発備忘録へ引っ越しました。
以後はそちらで更新を続けます。

こちらは数ヶ月後に削除しますのでよろしくお願いします。

引越し先URL : http://programming.lugn-design.com/

2010年11月22日月曜日

cocos2dでの色々設定

RxRAppDelegate.mの
if( ! [director enableRetinaDisplay:YES] )
CCLOG(@"Retina Display Not supported");
の部分のコメントアウトをはずす。

また画面を縦に固定するなら同ファイルの
[director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
をコメントアウト。

ランドスケープをオフにするなら
GameDonfig.hの
define GAME_AUTOROTATIONをkGameAutorotationNoneに設定する。

#define GAME_AUTOROTATION kGameAutorotationNone

またシーンなどの画面推移系で使うAPIが

CCFadeTransition
CCFlipAngularTransition
CCShrinkGrowTransition
CCMoveInBTransition
CCMoveInTTransition
CCMoveInLTransition
CCMoveInRTransition
CCFadeTRTransition
CCFadeUpTransition
CCFlipXTransition
CCFlipYTransition
CCPageTurnTransition
CCCrossFadeTransition

から

CCTransitionFade
CCTransitionFlipAngular
CCTransitionShrinkGrow
CCTransitionMoveInB
CCTransitionMoveInT
CCTransitionMoveInL
CCTransitionMoveInR
CCTransitionFadeTR
CCTransitionFadeUp
CCTransitionFlipX
CCTransitionFlipY
CCTransitionPageTurn
CCTransitionCrossFade

に変更されている。

cocos2D導入方法

cocos2dの導入方法。
こちらの cocos2dを使ったiPhoneアプリ制作を解説してみるが非常に分かりやすかったのですがいくつか戸惑った部分があるので引用しながら自分用メモ。

まずは有無をいわさずにcocos2D本体をダウンロードしましょう。
http://www.cocos2d-iphone.org/
(※2010/11/22時点では0.99.4が安定版です。この記事では0.99.4で行います。)

ダウンロードしたらとりあえず解凍しましょう。
基本的にダウンロードフォルダの中にあるはずです。
以下のコマンドをターミナルで打ち込みます。
(標準で$は入っているので「cd ~/Downloads」だけコピペして下さい。)

$ cd ~/Downloads
$ cd cocos2d-iphone-0.99.4 (※自分のダウンロードして解凍したフォルダ名。バージョンが違うと後ろの数字が変わりますので注意。)
$ ./install-templates.sh

この時macにパスワードをかけているとエラーが出るので「$ ./install-templates.sh」の代わりに
$ sudo ./install-templates.sh
を実行してあげるとインストール出来ます。
その際パスワードを求められるので自分のパスワードを入力してくださいね。

以上でxcodeにcocos2Dのテンプレートが追加されます。

導入はこれでOKですね。

参考URL cocos2dを使ったiPhoneアプリ制作を解説してみる

2010年10月24日日曜日

移行中

現在ブログを移行中です。
ある程度移行が完了しましたらまたお知らせします。

2010年7月12日月曜日

UIviewはUIViewControllerを知らない

ブログ移行しました。
新しいブログでのこの記事はUIviewはUIViewControllerを知らないこちらです。
シンタックスカラーなど導入しているのでソースコードが見やすくなっているはずなので是非っ。


UIView上でモーダルビューを実装しようとして必死にpresentModalViewController呼んでた。
先日ようやくViewDidLoadとInitWithFrameの違い覚えたばかりだというのに。

UIViewはUIViewControllerの存在を知らない。
ちぃ覚えた。

参考サイト
viewDidAppear/viewDidDisappearが呼ばれない

モーダルビューを表示した時に前のビューのツールバー、ナビゲーションバーが残る時の対処法

タイトル通りの症状。
この症状が出た人は恐らく下のソースと似たようなソースになってるんじゃないかと。
自分はTestViewClassでモーダルを呼び出したときにこの症状が出ました。

AppliNameAppDelegate.h
@interface AppliNameAppDelegate : NSObject  {
 UIWindow* window_;
 TestViewClass *testClass;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end
AppliNameAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

 // windowを自分で作成
 CGRect bounds = [[UIScreen mainScreen] bounds];
 window_ = [[UIWindow alloc] initWithFrame:bounds];

 testClass = [[[TestViewClass alloc]init]autorelease];
 
 UINavigationController *NavigationController =
  [[UINavigationController alloc] initWithRootViewController:testClass] ;
 
 [window_ addSubview:NavigationController.view];
 [window_ makeKeyAndVisible];
 
 return YES;
}

対処としてはAppliNameAppDelegate.mの下記の部分で
UINavigationController *NavigationController =
[[[UINavigationController alloc] initWithRootViewController:paging] autorelease];
NavigationControllerをautoreleaseしていたらこれを消してやる。
んでUINavigationControllerは.mじゃなく.hの方で宣言しておく。
deallocでreleaseするの忘れずにね。
これで新しくモーダルビューを表示した時にもちゃんとツールバーやナビゲーションバーが表示されるみたい。

TestViewClass上(呼び出した先)でモーダルを表示するとNavigationControllerのautoreleaseが動いて上手く処理されないのかも。

※追記
他の場所で同じような現象が起きたので例のごとく総当りでautorelease, release関係消してみたけど駄目でした。
今回の現象が起きたところは元々処理のさせ方が無理矢理だったからそれが原因なのかもしれないのですが。
とりあえずこの問題解決の糸口はrelease関係じゃないのかもしれません。
…という投げっぱなしな記事。

warning: class 'ClassName' does not implement the 'UI***Delegate' protocol の警告を消す

warning: class 'ClassName' does not implement the 'UI***Delegate' protocol
の警告を消す方法。

クラスの宣言を
@interface ClassName : UIViewController
から
@interface ClassName : UIViewController<UI***Delegate>
に変えるだけ。
<>は半角の<>に直してね。

参考サイト
・『UIActionSheet』を使う時にチョットはまった…。
・warning、error → 検索・翻訳で余計意味不明