taoru's memo

Objective-c,cocos2d,など開発についてのメモ(andoroidも少しだけ)

sedコマンドで \+ が使えなくて困ったら -E オプションを使う

sed

タイトル通り 困ったので、冷静になって man でマニュアルを見たところ、 -E オプションで (modern) regular expressions になることがわかった $ man sed -E Interpret regular expressions as extended (modern) regular expressions rather than basic re…

Cocos2d-x v3.1プロジェクトのspine-runtimeを更新する

Cocos2d-x v3.1プロジェクトのspine-runtimeを更新する Spineが出力するフォーマットが変わり、Cocos2d-xに付属されているspine関係のクラスを更新する必要がでてきた。 Forumでも報告されてた http://esotericsoftware.com/forum/viewtopic.php?f=9&t=2609&…

std::Vectorの内容をログ出力する

Cocos2d-xやり始めました。CCLOGでstd::Vectorの内容を出力するstd::accumulate()がVector内の要素を順に加算してくれるようなので、 numericをincludeして使ってみた。space入れられないしダサいけどとりあえず… C++難しい。

terminalでUUIDを自由に生成するコマンド

uuidgenというコマンドで、uuid文字列を自由に生成できる。 CoreBluetoothの開発などで、CBUUIDを新しく定義したいときなどに使う。 $ uuidgen 9B93632B-74D9-46B9-BC6A-503423BD08FC $ uuidgen B9EA6DEE-ADDF-477B-9CC9-58F6B2169CAF $ uuidgen 28CEB791-33…

複数アプリ間で同一IDを取得する

記事のタイトルつけるセンスが無い(切実)アプリAとアプリBをタオル株式会社(仮)がリリースしたとして、 アプリAとアプリBを同時にやってくれているユーザーにインセンティブあげたい!という場合に ユーザーを特定するための同一IDの取得が必要になる。UUI…

subviewをタッチした場合にUIGestureRecognizerのイベントを無視する

UITapGestureRecoginizerや、UISwipeGestureRecognizerでviewにgestureイベントを取得するようにセットしていた場合、 タッチイベントがsubviewにいかなくなってしまう。しかし、tableviewをタップされた場合はtableviewだけにイベントがいってほしい! とい…

Foundation.frameworkを検索対象に含める方法

Objective-cでのfor-inの仕様を調べていて、NSFastEnumerationに準拠しているクラスならfor-inが使えることがわかった。そこで、どのクラスがNSFastEnumerationに準拠しているのか調べてみた。 この記事はprotocolに準拠しているクラスを探す方法についての…

CCSpriteのanchorPointを変更した際の位置ズレを吸収する

CCSpriteはanchorPointをセットすると位置がズレる。 瞬間的に位置がズレてしまうので、ズレないように見せるためにpositionを補正する CCSprite *sprite = [CCSprite spriteWithFile:@"hoge.png"]; sprite.anchorPoint = ccp(0.5f, 0.5f); // 位置ズレ前のb…

UILabelでadjustsFontSizeToFitWidthが効かなくてハマった

UILabelのsubClassを作っていて、initializeをoverrideして案件で最適なLabelクラスを作っていた。adjustsFontSizeToFitWidth = YESにセットしているのに、なぜかscaleしてくれない! という問題が発生し、ハマってた。 UILabel.hの当該コメントを見て即解決…

NSCFStringエラーでハマった(凡ミス)

NSStringをpropertyにセットして、いざ使おうとすると何もエラーを吐かずにクラッシュして困った。 凡ミスだったのでメモを残しておく。breakpointをセットして、クラッシュ該当箇所でログを吐いてみたら、 該当文字列のクラスがNSCFStringになっていた。 (l…

NavigationBarのBarButtonItemに使えるIdentifier一覧

StoryBoardを学んでいて、BarButtonItemを設置することがあったのだけれど 結構種類があって使っていないと忘れてしまいそう。せっかく色々用意してあるのだから、適宜使っていきたい。 どんなのがあるのか覚えるためにも一覧にしてみた。 Identifier Image …

cocos2d-iphonev2.1-rc2アップデートメモ

ブログまとめるの結構労力がいるので、適当にメモするくらいしておく4th coordinated release: cocos2d-iphone v2.1-rc2 and much morerc2の変更点はgithubのchangelogで見られる。 cocos2d-iphone/CHANGELOG at develop-v2 · cocos2d/cocos2d-iphone · GitH…

既にsuperviewを持っているviewを他のviewにaddSubviewした場合の振る舞い

あるUIViewがaddSubviewしたときに、すでにsuperviewを持っている(addSubviewされている)viewを貼り付けようとした場合の振る舞いを初めて知った。UIView Class Referenceによると UIView Class ReferenceDiscussion This method retains view and sets its …

CocosBuilderのTimelineとCCActionが共存できなくてハマった

最近はCocosBuilderを使ったりして遊んでおります。 raywenderlichさんとこにもCocosBuilderTutorialがあるのですが、日本語訳してくれた方がいるのでなんとかbuildまでこぎつけました。 CocosBuilder入門CocosBuilderとXcodeがあればもうbuildできるとばか…

はてなダイアリーからはてブロに移行しました

今更ですが。 はてなダイアリーだとgistが貼り付けられなかったり、色々と不便だった。 - 記事のインポート - はてブの移行 - 記事のリダイレクト 以上三点をナビゲーション通りに行いました。

CCNodeのカテゴリで、他のCCNodeをゆったり追うSoftFollowというのを作ってみた その3

CCNodeのカテゴリで、他のCCNodeをゆったり追うSoftFollowというのを作ってみた その2 - 追記2/26 - taoru's memo ↑の続編になります。今回はタイトル詐欺になるけど、カテゴリではなくCCActionを継承してTTSoftFollowを作った。 prefixどうしようかな〜と…

CCRenderTextureで輪郭線を描く

cocos2dを使っていて、CCSpriteに輪郭線を付けたい!ということがよくある。「輪郭線」「Outline」「Outline Stroke」などでググると、色々出てくるけどCCRenderTextureを使う方法がメジャーみたい。 ということで試してみた。CCSpriteとCCLableTTF(CCSprite…

InsertSubviewしたときはaddSubviewはいらない

UIViewをサブビューとして画面に表示させたいとき、 UIView *subview = [[[UIView alloc] init] autorelease]; [parentView addSubview:subview]; のように書くとparentViewのサブビューリストの末尾にsubviewが追加される(一番上に表示される)で、既存の…

kmVec2でのベクトル計算

Kazmath - Kazade/kazmathcocos2dにも標準で入っているライブラリKazmathの勉強をする。今回は特にkmVec2に関するメソッドを色々と試す。 以前にも一度ベクトル計算を試している(※)が、kmVec2Dotとか何をしているか分かっていない。 2Dでベクトル計算ができ…

cocos2dv2.1で追加されたCCClippingNodeを試す

この記事は、cocos2dv2.1で追加されたCCDrawNodeを試す - taoru's memo の続きです。 今回はCCClippingNodeを試す。これを使うといわゆるmask効果を得られる。が、適当に試しててもなかなか思い通りにできなかったので、練習する。 CCClippingNode.h につい…

cocos2dv2.1で追加されたCCDrawNodeを試す

cocos2d v2.1-rc0 が出ましたので、色々試してみようかと。中でも以下の2つ CCClippingNode CCDrawNode をマスターしたいところです。とりあえずCCDrawNodeを練習した記録を残す。 まずはサンプルを見ながらシンプルな三角形を書くコード - (id)init { if (…

UITableViewのCellを、タッチ中(highlight)だけ色を変える(半透明にしたい)

UITableViewのcellは、defaultのままだとタッチすると青くなる。単純なセルの色変更なら、UITableViewDelegateのdidSelectRowAtIndexPath中でcellを取得した後に、 cell.selectionStyle = UITableViewCellSelectionStyleGlay; などセットすれば色を変えられ…

UIViewをUIImageに変換する

拡張子が.pngの場合、UIImageに渡すファイル名では拡張子を省略できる(iOS 4以降) UIImage Class Reference On iOS 4 and later, if the file is in PNG format, it is not necessary to specify the .PNG filename extension UIImage *image = [UIImage ima…

Xcodeプロジェクトのgitignore設定とgitattributes設定

Xcodeプロジェクトをgit管理するとき、ユーザーデータやスワップファイルは無視させる。 こちはら使っていればすぐ.gitignore設定しなきゃ!って気がつくので問題があまりない。しかし、これだけでは複数人開発をしたときに .pbxproj という拡張子のついたフ…

ファイル名に自由にsuffixをつけるNSString+Suffixを作った

suffixといえば、retina用画像なら hoge@2x.png のように@2xをつけるのだけれど、 オリジナルのsuffixを使いたい場合があったので、やり方を調べた。が、サクッとやるメソッドは用意されていないっぽい…? ので簡単なExtentionを作った。要件 拡張子の前にsu…

CCNodeのカテゴリで、他のCCNodeをゆったり追うSoftFollowというのを作ってみた その2 - 追記2/27

CCNodeのカテゴリで、他のCCNodeをゆったり追うSoftFollowというのを作ってみた - taoru's memo という記事を書いたんだけど、 kmVec2でベクトル計算するのがかっこく見えたので使って書きなおしてみた。CCNode+SoftFollow.h #import "CCNode.h" @interface …

CCNodeのカテゴリで、他のCCNodeをゆったり追うSoftFollowというのを作ってみた

要件 CCNodeが、CCNodeを追って欲しい 自動追尾だけど、自然な感じで追って欲しい 指定したい項目は、対象Node、 引っ張られる強さ、対象との距離 気軽に使いたい ということで、CCNodeのカテゴリで CCNode+SoftFolloというのを作った。 CCDelayを継承してAc…

NSInvocationを組み立てるのが面倒くさかったので1メソッド呼び出しにしてみた

引数付きでSelectorを保持したいと思い、調べてみたらNSInvocationが良いらしいということがわかった。が、いちいちSignature作って、setTargetして、引数セットして…というのが面倒なのでビルドメソッドを作った。 一応動いてはいるけど、これが安全なのか…

cocos2d v2.0 個人的に覚えておきたいアップデート内容

cocos2d v2.0 の安定版が出た。(7/9) http://www.cocos2d-iphone.org/archives/2003 v2.0 highlights:OpenGL ES 2.0 support Better Physics engine support Better DoubleResolution sprite support Easier to maintain Retina Display code Faster MotionS…

CCTouchDispatcher と isRelativeAnchorPoint が非推奨だった

ブログなどで紹介されているクラスやメソッドが、Cocos2d 2.xでは非推奨になっていることがよくある。 ソースを追えば、現在の推奨メソッドが発見できたりする。 [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouche…

QLOOKアクセス解析