[objective-c]グローバルメソッド,定数

グローバルメソッドを設定する。
AppDelegate.hの@interfaceの手前に記述する。pchに記述でもok。
下記は2座標間の距離を返すメソッドと指定した範囲で乱数を返すメソッド。

#define get_dist(px1,py1,px2,py2) sqrt((px2-px1)*(px2-px1)+(py2-py1)*(py2-py1))
#define get_random(st,en) (arc4random()%ABS(en-st))+st;

定数はこんな感じ

#define HOGEHOGE 0

[cocos2d]CCMoveTo 座標を移動させる

CCSpriteなどの座標を移動させる方法。

CCMoveTo,CCRotateToなどがある。
CCSpriteを今の座標から110.0,110.0へイーズインアウトで移動させる時

CCSprite*sp=[CCSprite spriteWithFile:@"sc02.png"];
[self addChild:sp];
id moveto=[CCMoveTo actionWithDuration:0.4 position:ccp(110.0,110.0)];
id ease=[CCEaseInOut actionWithAction:moveto rate:2.0];
[sp runAction:ease];

止める時

[sp stopAllActions];

参考サイト
cocos2d for iPhone: Class List

[cocos2d]CCSequence#01

CCSpriteなどを「移動して5秒待って回転してメソッド実行」のような複合アクションさせる方法。
よく忘れるのでメモ

-(void)testFunc{
    NSLog(@"hello");
}
CCSprite*sp=[CCSprite spriteWithFile:@"sc02.png"];
[self addChild:sp];
id moveto=[CCMoveTo actionWithDuration:0.4 position:ccp(110.0,110.0)];
id ease=[CCEaseInOut actionWithAction:moveto rate:2.0];
id roll=[CCRotateTo actionWithDuration:1.0 angle:74.0];
id act_func=[CCCallFunc actionWithTarget:self selector:@selector(testFunc)];
CCSequence*seq=[CCSequence actions:ease,[CCDelayTime actionWithDuration:5.0f],roll,act_func,nil];
[sp runAction:seq];

参考サイト
CCSequence Class Reference

[iPhone Apps]PencilPhoto(鉛筆フォト)

iPhoneアプリ「鉛筆フォト」をリリースしました。
鉛筆フォトは写真を鉛筆で描いたような写真に加工するアプリです。
Twitter,Facebookに対応しており、作った写真をすぐにアップロードすることが出来ます。

主な機能
■撮った写真または保存されている写真を鉛筆で描いたような写真に加工できます。
■線のきめ細かさを調整できます。
■明るさを調整できます。
■写真をTwitterへアップロードできます。
■写真をFacebookへアップロードできます。
■写真を使用中のiPhone,iPodへ保存できます。

PencilPhoto is photo retouch App.
You can convert photos to image drawn with the pencil.
And You can upload photos to Twitter,Facebook.

Features
■Enable to convert photos to image drawn with the pencil.
■Enable to adjust pencil detail.
■Enable to adjust brightness.
■Enable to upload photo to Twitter.
■Enable to upload photo to Facebook.
■Enable to save photo to your device.


鉛筆フォト
鉛筆フォト


PencilPhoto

鉛筆フォト鉛筆フォト

鉛筆フォト鉛筆フォト

[cocos2d]CCSprite#02 タイリングする

CCSpriteについて#02

タイリングする方法。下記コードでできる。

CCSprite* s=[CCSprite spriteWithFile:@"bridge.png":];
[s setAnchorPoint:CGPointMake(0.0, 0.5)];
ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
[s.texture setTexParameters:¶ms];
[s setTextureRect:CGRectMake(0.0,0.0,42.0*4.0,62.0)];

と、思ったらうまくいかない。


この画像をタイリングしようとすると
本当は下記のようになって欲しい

理想

現実

何故か隙間が出来る。OpenGLESは2の累乗ピクセルおきにタイリングするらしい。
widthが20pxなら32pxおきにタイリング。今回の画像はwidthが42pxだから64pxおきにタイリングされる。

うまいこと2の累乗ピクセルの画像にするしかない。

[cocos2d]CCSprite#01

CCSpriteについて#01

ファイルから

CCSprite*sp=[CCSprite spriteWithFile:@"image.png"];

中心点を設定する。デフォルトは(0.5,0.5)になっています。

[sp setAnchorPoint:ccp(0.0,0.0)];

画像の十字のところが中心点。ここを中心に拡大したり、回転したりします。


  • [sp setAnchorPoint:ccp(0.0,0.0)];

  • [sp setAnchorPoint:ccp(0.5,0.5)];

  • [sp setAnchorPoint:ccp(1.0,1.0)];

参考サイト
CCSprite Class Reference

[Xcode]アプリ名のローカライズ

よく忘れるのでメモ。

1. Resourceなどを右クリックして「New File」
2. Strings Fileを選択
3. ファイル名をInfoPlist.stringsに
4. InfoPlist.stringsを選択して右カラムのLocalizationの「+」で言語を追加
5. 出来たInfoPlist.strings(English)を選択し下記を記述

CFBundleName = "hoge";
CFBundleDisplayName = "hoge";

参考画像

[objective-c]NSUserDefaults

NSUserDefaultsは一時的に情報を記録出来るクラスです。
アプリをアップデートしたりすると消えます。多分。FlashのSharedObjectのようなものです。

使い方

-(void)saveData{
    NSUserDefaults *me=[NSUserDefaults standardUserDefaults];
    [me setFloat:prop1 forKey:@"prop1"];
    [me setFloat:prop2 forKey:@"prop2"];
    [me setFloat:prop3 forKey:@"prop3"];
    [me setFloat:prop4 forKey:@"prop4"];
    [me setFloat:prop5 forKey:@"prop5"];
    [me synchronize];
}
-(void)loadData{
    NSUserDefaults *me=[NSUserDefaults standardUserDefaults];
    NSArray*obj=[NSArray arrayWithObjects:@"0.05",@"-0.5",@"0.4",@"0.1",@"1.0", nil];//各変数の初期値
    NSArray*key=[NSArray arrayWithObjects:@"prop1",@"prop2",@"prop3",@"prop4",@"prop5", nil];
    NSDictionary *appDefaults = [NSDictionary dictionaryWithObjects:obj forKeys:key];
    [me registerDefaults:appDefaults];
    
    prop1=[me floatForKey:@"prop1"];
    prop2=[me floatForKey:@"prop2"];
    prop3=[me floatForKey:@"prop3"];
    prop4=[me floatForKey:@"prop4"];
    prop5=[me floatForKey:@"prop5"];
}
-(void)removeData{
    NSUserDefaults *me=[NSUserDefaults standardUserDefaults];
    [me removeObjectForKey:@"prop1"];
    [me removeObjectForKey:@"prop2"];
    [me removeObjectForKey:@"prop3"];
    [me removeObjectForKey:@"prop4"];
    [me removeObjectForKey:@"prop5"];
    [me synchronize];
}

initメソッドあたりでloadDataする。
saveDataで保存して、removeDataで消す。簡単。

[iPhone Apps]FisheyePhoto(魚眼フォト)

iPhoneアプリ「魚眼フォト」をリリースしました。
魚眼フォトは写真を魚眼レンズで撮ったような写真に加工するアプリです。
犬や猫の写真を使うと一味違ったかわいさを出すことが出来ます。
Twitter,Facebookに対応しており、作った写真をすぐにアップロードすることが出来ます。

FisheyePhoto is photo retouch App.
Enable to convert the photo that look like they were taken with fisheye lens photos.
You can upload photos to Twitter,Facebook.


魚眼フォト
魚眼フォト


FisheyePhoto

魚眼フォト魚眼フォト

魚眼フォト魚眼フォト