久々のエントリー。仕事サボってた訳ではございません^^;バタバタしてました!
今日はUIViewをcocos2dで利用する場合のメモメモです。
UIView *myView = [UIView alloc] init]; [[[CCDirector sharedDirector] openGLView] addSubView:myView];簡単ですね。
cocos2dでゲームアプリを開発しながら、UIViewなオブジェクトを貼り付けたいとき!はこの方法でOK!
以上でぇぇぇえぇす!
大阪でWEB屋しています。
OSSに関するメモ帳のかわり。
UIView *myView = [UIView alloc] init]; [[[CCDirector sharedDirector] openGLView] addSubView:myView];簡単ですね。
// 座標(100, 100)の位置に横50 x 縦50のサイズを表すCGRect CGRect rect = CGRectMake(100, 100, 50, 50);
//座標(200, 100)の位置を表すCGPoint CGPoint point = CGPointMake(200, 100);
// 横200 x 縦100のサイズを表すCGSize CGSize size = CGSizeMake(200, 100);
CGRect rect = CGRectMake(0, 0, 30, 30); NSLog(@"%@", rect);のようにしても出力されません。
CGPoint point = CGPointMake(100, 200); NSLog(@"%@", NSStringFromPoint(point));
NSString *str = @"にほんご";英語圏で使うようにするには
NSString *str = NSLocalizedString(@"key", @"comment");としておき、ターミナルから
genstrings -a $(find ./ -name "*.m");とすればLocalizable.stringsファイルができるので、Xcode内にドラッグ&ドロップ(Xcode4では「Supporting Files」が適当かな)します。
"key" = "Japanese;"
"key" = "にほんご"としておけば、"key"と記述した部分をそれぞれの言語に変更してくれます。
私は「テトリス」で「100」pt取った。という日本語を英語にすると
I took 「100」pt in 「Tetris」.となる。「」で囲まれた単語が異なる場合がある。
NSString *str = [NSString stringWithFormat: NSLocalizedString(@"long sentence", @"some comment"), @"100", @"Tetris"]こうしておいた上で、それぞれのLocalizable.stringsでは
"long sentence" = "I took %d pt in %@.";
"long sentence" = "わたしは%$2@で%1$d取った。";とする。
// 遷移先UIViewを画面外に生成(SecondView: UIVIewを継承) secondView = [[SecondView alloc]initWithFrame:CGRectMake(self.view.frame.size.width + 1, 0, self.view.frame.size.width, self.view.frame.size.height)]; // アニメーション開始 [UIView beginAnimations:nil context:nil]: [UIView setAnimationDuration:0.5]; // 0.5秒かけて [UIView setAnimationCure:UIViewAnimationCurveLinear]; // 一定速度で [self.view addSubview:secondView]; // addSubviewする secondView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); // 画面内へ動かす [UIView commitAnimations]; // アニメーションコミットこれで右から画面内へスライドインする遷移ができます。
[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationCurve:UIViewAnimationCurveLInear]; [UIView setAnimationDelegate:self]; // デリゲートをselfで指定 [UIView setAnimationDidStopSelector:@selector(animationStopped:finished:context:)]; // アニメーションが完了した時の処理こうなります。secondView.frame = CGRectMake(self.view.frame.size.width + 1, 0, self.view.frame.size.width, self.view.frame.size.height); // 画面外へ[UIView commitAnimations];/** * アニメーション停止後の処理 */ - (void)animationStopped:(NSString *)animation finished:(BOOL)finished context:(void *)context { [secondView removeFromSuperview]; // secondViewをremoveFromSuperviewする }
int i = 10; NSInteger i = 10; NSNumber *i = 10;のようになります。
int i =10; NSNumber *num = [NSNumber numberWithInt: i];としてやればintをNSNumber型に変換できます。
NSNumber *num = [NSNumber numberWithFloat: 10.0f];のような使い方もできます。
int i = [num intValue];でOKです。
CGrect rect = CGRectMake(0, 0, 100, 100); NSValue *val = [NSValue valueWIthCGRect:rct]; CGPoint point = CGPointMake(100, 100); NSValue *val = [NSValue valueWIthCGPoint:point]; CGSize size = CGSizeMake(100, 100); NSValue *val = [NSValue valueWIthCGSIze:size];こんな感じです。
CGRect rect = [val CGRectValue]; CGPoint point = [val CGPointValue]; CGSize size = [val CGSizeValue];使い方はNSNumberの場合とほとんど一緒です。
#import <QuartzCore/QuartzCore.h>とQuartzCore.frameworkをインポートします。
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(100, 100, 50, 50); [btn setTitle:@"test" forState:UIControlStateNormal]; // 角丸の処理 [[btn layer] setCornerRadius:5.0f]; // または // btn.layer.cornerRadius = 5.0f;こんな感じです。
// MyClass.h @interface MyClass: NSObject { @private id hoge; } -(void)methodA; @endのような形で定義できちゃいます。
// MyClass.m @interface MyClass () // ←が無名カテゴリの定義 -(void) privateMethod; @end @implemention MyClass // ここにクラスの実装を行う。 // privateMethodもここに作成する。 -(void) prrivateMethod { // メソッドの内容 } @endこんな感じです。