iPhoneアプリ開発

リストア機能がうまく動作しない罠

アプリ内課金の機能の一つにリストアというのがあります。 iPhoneを買い替えた時など、リストアを行うと、アプリ内課金で購入済みのプロダクトをそのiPhoneでも購入済みの状態にするという機能です。 で、いろいろあり、あるページにリストアボタンを追加し…

時間軸を変動させて、動きを変化させる

例えば、放物線運動を物理方式どおり作ったとして、どうしてもぽわーんとした動きに感じられるケースがあったとします。 重力加速度などを弄っても、上手くいかないと。 そういう時、運動の時間軸の方を伸縮させて、解決する方法があります。 紹介している方…

EAGLViewの画面キャプチャ

作っているゲームの画面キャプチャをアプリ内でする必要があり、いろいろ調べて実装してテストしたのですが、なかなか上手くいかず困っていましたが、なんとか行きました、という内容です。 @interface EAGLView : UIView { @private EAGLContext *context; …

アプリ内課金の公開への長い道のり

先程、ようやくアプリ内課金を実装したアプリをリリースしました。 「安寧の巫女」〔無料) https://itunes.apple.com/jp/app/an-ningno-wu-nu/id804127600?l=ja&ls=1&mt=8 占いミニゲームとその占いのベースとなる世界観の物語も収録しています。 無料で遊…

iOS7対応で行ったことなど

Xcodeを5にアプデしたら、ワーニングやらいろいろトラブル噴出。 って程ではありませんが、なんとか解決しました。 ワーニング1 Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGBitmapInfo' (aka 'e…

Astro Shift リリースしました〜

3本目のアプリ、Astro Shiftがリリースされました。 3マッチのゲームアプリです。 DLして遊んでみてください。無料です。 今回、Game CenterとTwitterの投稿に対応しました。 OpneGLの自作UIばかりでしたから、viewとかviewControllerとか、実はあまり深く…

Xcodeが4Sを認識しない!?

4Sに乗り換えて、まだ実機転送していなかったんですが、今朝やってみたら、Xcodeが下のエラーを出して、出来ません。 Xcode cannot run using the selected device iTunesでは認識してるし、なんで?と。 4S再起動してもダメ。 ググったりしたんですが、似た…

ARCエラー!

Xcode4.2 iOS5で新規にプロジェクトを作って、以前から使っていたライブラリを入れたら、 ARC forbids explicit message send of 'release' というエラーが爆出! ググってみたりして、調べた所、どうやらiOS5の新機能がONになっていて、それが原因みたい。 …

iOS5のcontainsObject

どうやら、i0S5になって、MSArrayのcontainsObjectメソッドの扱いが少し変わったようです。 containsObjectは、NSArrayの中にcontainsObject:objectのobjectで指定したオブジェクトが含まれているかどうかをBOOL型で返すメソッドです。 iOS4.3までは、object…

retina対応版Astro Zill リリース!

昨年リリースしたAstro Zill、なかなかretina対応できなくていたんですが、ようやく対応してリリースしました。 今月いっぱいまで、半額の85円セール中です。 http://itunes.apple.com/jp/app/astro-zill/id384356532?mt=8 とかいう宣伝はここまでで、ちょっ…

retainしていないものをreleaseしてはいけない

どっぷりハマってしまったバグについての忘備録です。 起こった箇所:画像ファイルを読み込んで、テクスチャを作るメソッドの終わりの [uiImage release]; 起こった症状:有る程度の分量を読み込むと、下のようなエラーで止まる。止まる画像データは同じ。 A…

glCopyTexImage2D によるフレームバッファのコピー

glCopyTexImage2D を使うと、フレームバッファやフレームバッファオブジェクトからその内容をコピーできます。 コピーした内容を新しいテクスチャとして使うという事ができて便利です。 フレームバッファオブジェクトを毎フレームコピーする場合には問題なか…

Maxwell Gate 1.20 リリース 同じ長さの尾を描く方法

前回のブログで、パーティクル同じ尾の長さにする方法というのを簡単にお話しました。 今回、もう少し詳しくお話してみようと思います。 尾に見えるのは、本体に近いと大きく、遠いと小さくなっている多数のパーティクルです。 これらのパーティクルが本体の…

Maxwell Gate 1.20 サブミット

ちょこちょこ修正を加えていたMaxwell Geteをサブミットしました。 大きな変更点は、下の通り。 iPod でBGMを鳴らしながらプレイできます。 対応したと思っていたら、やってませんでした。orz backgroundに対応しました。ゲームの途中で、ホームボタンを押す…

Invalid Binaryに悩まされたり。

あけましておめでとうございます。 今年もよろしくお願いします。 さて、お題のお話です。 このお話は、おそらく上級者の方は「まったく」問題の無い出来事だと思うのですが、app storeにバイナリを提出した後、 "Waiting For Review"にならず"Invalid Binar…

3GとglFramebufferTexture2DOESとglCopyTexImage2D

glFramebufferTexture2DOESを使って、3Gでテクスチャを生成したのですが、上手く行かない事がありました。 一つのテクスチャをフレームバッファと結びつけて、毎フレーム生成する場合は上手く行きます。 ですが、どうもそれ以外では上手く行かない事が起こる…

NSStringをファイルに出力したり

文字列を処理していると、あ〜、この処理は実行時に行うんじゃなくて、前に行った結果をデータ化したい! とか思う事がありませんか? いわゆるプリプロセスです。 でも、専用のツールを作ったりするのは少々面倒だったり。 同じアプリ内で、ファイル出力で…

NSStringの文字列結合など

NSStringの文字列結合、Visual Basicみたいに&とかC++みたいに+とか(だっけうろ覚え)で結合出来きません。 調べてみたら、NSMutableString使って、くっつける方法がありました。 NSMutableString* testString = [NSMutableString string]; //空の文字変数…

OpenGLES1.1の2Dスプライトサイズが奇数の時

久しぶりのブログの更新です。(汗) さて、Coco2Dを使っていた時ですが、表示するスプライトのサイズが縦か横両方、 あるいはどちらかが奇数の時、表示される画像がちょっとおかしくなる事がありました。 アンチエイリアスをかけない時が顕著です。 市松模…

NSStringで複数行を扱ってみました

複数行のテキスト表示を行う実験をしました。 そこで分かった事などを書いてみます。 NSString* text = @"test\r\n文字表示\r\n改行です\r\n"; UIFont * font; font = [UIFont fontWithName:name size:size]; CGSize textSize = [text sizeWithFont:font]; t…

クラッシュログを解析してみたり

iPhoneのAdHocテストなどの出るクラッシュログ。 アプリのシンボルコードが無くなって、分かりづらいですね。 シンボルコードを付ける方法を調べてやってみました。 symbolicatecrash というツールを使うとクラッシュログにシンボルを付加して、 こんなクラ…

xibを使わない方法に改造したり

しばらくブログの更新が滞ってました。(汗) とある理由でxibを使わない方法を行う事になり、やってみたコトのまとめを書く事にします。 いくつかやり方を探したのですが、基本はこのサイトが良さそうです。 Interface Builder を使わない iPhone アプリを…

続Xcodeのデバッガを使ってます

iPhoneの前はFlashでゲームを作ったりしてました。 その時はデバッガ使わずに、変数を表示したりしてやってましたね。 デバッガで変数の中身を覗けるんですが、覗ける時と覗けない時があったりします。 ブレークポイントしかけても、汎用のメソッドに仕込む…

Xcodeのデバッガを使ってます

iPhoneのゲーム開発始めてから、Xcodeのデバッガを使い始めました。 多分、これからお話する事はベテランの方は既にご存知の事だと思います。 初心者の方には役に立つかもしれません。 エラーが特定の箇所で起こる時ですが、デバッガに切り替えて再現させる…

Maxwell Gate の裏話

リリースしたMaxwell Gateですが、こんな簡単なゲームでも紆余曲折がありました。 その辺りをちょっとお話してみようと思います。 初めは、左右に赤の部屋、青の部屋を設けて、その真ん中にバーを置いて、 赤の花を赤の部屋に、青の部屋に青の花を仕分けする…

Maxwell Gate がリリースされました♪

ついさっき、提出したゲーム"Maxwell Gate"がリリースされました♪ リジェクとされませんでしたから、このブログでご紹介したiAdの設置方法、まあ大丈夫そうです。 Maxwll Gate "Maxwell Gate"無料です。簡単なゲームで指一つで遊べますから、ちょっと空いた…

実践iPad/iPhoneゲームプログラミングを予約しました

twitterのTLに流れていたので、早速覗いてみると、おお!ちょうど勉強したい事がまとめて書いてある本を見つけました。 実践iPad/iPhoneゲームプログラミング 目次を見ると、viewやらCore AnimationやOpenGLES2.0やゲームエンジンについての記載が! 早速ア…

処理メーター表示したり

ファミコンくらいの頃から、ゲームの処理がどれくらいかかっているかを画面に表示する、 「処理メーター」を良く目にしました。 画面の端に、メーターが表示され、そのメーターが振り切れると、処理オーバー、という事が判る仕組みです。 そうですね、CPUメ…

英語のお勉強してます

iPhoneの開発を始めて、いちばんの大きな障壁が英語でした。(あ、過去形じゃないですね) 何しろ何か調べようとすると、英語の情報に触れないとなりませんし、英語での登録作業なども必須ですから。 正直にお話しますと、中学2年で英語苦手になってそれ以…

retina対応してみました

昨日、作ったゲームを iTunes Connect 提出しました〜。 retina対応です。で、retina対応にした時の事をまとめてみました。 今までは320×480の解像度でしたが、iPhone4や新しいiPod Touchのretinaディスプレイ、 その倍の解像度になっています。 解像度のpix…