サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
blog.livedoor.jp/tek_nishi
2012年11月01日18:00 カテゴリiPhoneプログラム OpenGL ES系はとくに。 iOS6への対応で気をつける事 iPhoneアプリ『こなへん』まさかのTV紹介に作者の私も嬉しい限りです。 なのに… どうしてこんなことに… iPad with iOS6 どうしてこんなことに… iPhone with iOS6 原因は本人がメッチャ油断した実装をしていたに他ならないのですが… 検証した結果、iOS5からiOS6で変更になった画面回転系の実装と、UViewのレイアウトの挙動の微妙な変化によるものでした。 という訳で以下メモ的に原因と解決策。 iOS6のiPadを横画面にした状態でアプリを起動すると、UIViewControllerの -willAnimateRotationToInterfaceOrientation:duration: が呼ばれない これが自分にとっては非常に
2012年10月12日17:31 カテゴリiPhoneプログラム 古いアプリほど要注意。iOS6対応とiPhone5対応 iOS6になってiPhone5や新型iPodが発売されて…過去のアプリもいよいよ、色々修正が必要になってきたのでそのメモ書き。 iPhone5のフルサイズに対応する 640 x 1136の起動画像(Default.png)を用意してXcodeで指定したりする iOSアプリケーションプログラミングガイド iOS6の画面回転に対応させる 最近の雛形であれば特に何もしなくて良い。XcodeのTARGETSのSummaryで対応画面を指定 なのですが…iOS3台の雛形をもとにしていると回転してくれません(涙) iOS4からUIWindowに追加されたrootViewControllerプロパティに、起動時、ルートのUIViewControllerを書き込んでください。古いアプリ
2012年08月19日19:11 カテゴリiPhoneプログラム あなたのアプリは大丈夫? iPhoneアプリを30秒(しかも無料)で診断。 MacBook Airを買ってご機嫌です。 それはさておき、あなたが作ってるiPhoneアプのパフォーマンス、簡単に(しかも無料で!)診断出来る方法をご存知ですか? とくにOpenGL ESを使ったアプリを作ってると、どこがボトルネックになっているのか、とか、なにかやってはいけない実装をしてしまってはいないか…などなど気になって仕方がないと思うのですよ。 でも大丈夫!それを30秒くらいでかなり具体的に診断してくれるツールが実はXcode4.4にはあります。 ではさっそく!Xcodeのメニューから「Profile」を選んでみましょう! 何やらビルドが始まって…そして、Instrumentsというアプリが立ち上がったと思います。 今回はOpenGL ES
2012年06月29日17:20 カテゴリiPhoneプログラム iOS5.1でAudioSessionにハマったらこう解決 iPhoneでアプリを作る時に、AudioSession を使えば、ほかのアプリの音をそのまま再生させながら自分のアプリを動かせたりもします。 なーのーでーすーがー! AudioSessionの設定をちゃんとしないと「電話を着信した後ゲームに復帰すると音が鳴らない」とか「iAdバナーをクリックして広告画面を表示した後、ゲームに戻ってくると音が鳴らない」とかの不具合に悩まさせることにもなります。 実はこれはアップルから公開されているAudioSession関連のドキュメントやネット上の情報を読みつつ実装すればなんて事はないのです。 iOS5まではね… iOS5.1だとなぜか、サンプル通りに実装しても、これまで見たことのないエラーが発生して、設定が復帰されません…(涙)
2012年06月02日14:21 カテゴリプログラム雑記 こなへん 発売記念 それは…まだ「こなへん」が「GEOSPOT」だった頃のお話…。 こなへん配信開始を記念して、GEOSPOT1.0のソース公開をします。 Windows: ⇒GEOSPOT_Win_Dev.zip OSX: ⇒GEOSPOT_OSX_Dev.zip iOS: ⇒GEOSPOT_iOS_Dev.zip なんせ生まれて初めてC++で作ったゲームやけん、めちゃくちゃかもしれんよ… Xcodeのプロジェクトですが、もしスキームが無くなってビルドできなくなってたら、なんとか自力で作ってください… ではまた次回! 「プログラム」カテゴリの最新記事 タグ :#Windows#OSX#GAME#インディーズ#OpenGL#glut#iOS#iPhone#iPad
2020年06月01日11:32 カテゴリEmacs EmacsでC++を書くと重くて遅くて耐えられない件について コード書いとる? Emacs 27.1が待ち遠しい拙者です(この記事を書いている時点で27.0.91) ところでEmacs26.3でC++のコードを書いていると目に見えて処理速度の低下が... キー入力の応答性も下がりストレスだけが上がる...!! こりゃ堪忍ならんと調べてみたら、同じ状況に遭遇している人を発見! この問題、Emacs26.1の頃からあったのか... 公式でも言及していますね。 というわけでこの記事に倣って設定を変更! Emacsのカスタマイズ機能を使い font-lock-maximum-decoration の値を書き換えてEmacsを再起動! とりあえず処理速度の低下は見られなくなりました! スッキリ! タグ :#Emacs ツイート tek_nishi
2012年05月27日17:32 カテゴリプログラム雑記 ゲームを作ろうと思ったらライブラリを作ってはいけない さいきん告知ばっかりだったので(それも一年くらい!)、久々に思う事を思うように。 ここ数年、専門学校に教えに行ってるのですが、プログラミング初心者~中級者は、やっぱみんなハマるんだよね… ライブラリ症候群 ワシ的には「自作ライブラリで環境整備」「後々ほかのプロジェクトで使いまわせるようにコードを書く」のにはまったく積極的じゃないので、今回はそれについて書いてみるす。ゲームを作る事について書いてますが、ほかもだいたい同じだと思う。 みんなを見てると、まあだいたいこんな感じの流れ。 ゲームをつくるぜ!そのまえに、ライブラリなるものを作って環境を整えよう頓挫みたいな。最初の心意気はよかったものの、結果として何も完成しませんでした…という感じ。 なんでだろね。 コレ、途中から「ゲームを完
2012年04月17日15:23 カテゴリiPhoneプログラム iphone_dev_jp 東京iPhone/Mac勉強会 先日、iphone_dev_jp 東京iPhone/Mac勉強会にて拙作アプリGEOSPOTを例にした発表をしてきました。 主催者の岸川さんのブログを始め、参加された皆さんが詳細かつ的確なまとめ&回想をしてくださってるので、私は軽く遠慮しつつ… あれだけライブラリが充実してるiOSなのに「プログラマならOpenGLES1.1とC++で全部自力実装しようぜ!」と、会場の皆さんをドン引きさせトップバッターの責務を果たせたと自負しております。 ⇒その時の資料 どこでも動くゲームを作るためのベタープラクティス View more PowerPoint from 5mingame2 そこに渦巻く若いエネルギーみたいなものを感じつつ、軽く酔った勢いとはいえ、帰りの電車で@tmo
2012年01月06日00:37 カテゴリEmacsプログラム Emacs23 で VCパッケージ+Subversion1.7.1の組み合わせを動かす Windows7にしてから困ったことが起きました。 正確にはCygwinを新しくしてから。 EmacsのVCがうまく動作しなくなっていたんですわ。 C-x v = とか C-x v l とかでなんかへんなエラーが出る! で、以下その顛末記です。 今使ってるCygwinのSubvirsionは1.7.1。標準設定だと .svn フォルダをチェックアウトしたディレクトリのルートにしか作らないので、これが非常にありがたかった。これまでは全サブディレクトリに.svnフォルダが作られてイヤ~ンな感じだったのだ。 で、これがEmacs23のVC(正確には vc-svn )が正しく動作しなくなる原因で、当該ファイルがバージョン管理されているかどうかの判定
2011年11月16日07:56 カテゴリプログラム雑記 Windows7 (x64) 痒いところに手を届けるカスタマイズ Windows7、ちょっと放置しておくと省電力のために画面を暗くしてくれるのはいいんだが、ファイル検索の為のインデックス生成が始まってHDDもファンもフル稼働。それはかえって電力を消費しているんじゃ… なんというか、Windows7を象徴するような仕様でござるニンニン。 というわけで、前回に引き続き、Windows7 のカスタマイズ記です。 今回もテキストばっか^^; エクスプローラーのステータスバーにファイルサイズが表示されない 詳細ウインドウに表示されるからいいじゃん!という事なのでしょうが、縦方向に狭いワイド液晶画面では縦方向の余計なスペースは無駄でしかないのでオフってます。ので、WindowsXPと同じくステータスバーにファイルサイズが表示されて欲しくてしかた
2010年02月20日14:34 カテゴリプログラム iPhoneではたぶん最速であろう、レンダリング結果をテクスチャとして利用する実装(OpenGL版) タイトル長っ! 知ってると何かと便利なオフスクリーンレンダリング。レンダリング結果をテクスチャとして使えれば画面演出の幅も広がりんぐ。 で、試行錯誤の末、iPhoneでのオフスクリーンレンダリング(でいいのか?)はこんな感じで実装しました。 // 初期化 GLuint fboTexture; GLuint fbo; glGenTextures(1, &fboTexture); glBindTexture(GL_TEXTURE_2D, fboTexture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, FBO_WIDTH, FBO_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYT
2011年11月14日17:10 カテゴリプログラム雑記 Windows7(x64)への移行で私がした30の項目 さてWindows7(x64)へ移行を始めて一週間です。 ようやく出口が見え始めました(>_<) そんだけWindowsXPをカリカリにチューニングして使ってきた裏返しなのですが、ちょっとでも操作感がかわるともう拒否反応出ます。「あ~これショートカットキー違う!」とかいろいろ。 …それだと仕事にならんので普段のワークフローも含めてエイやっと刷新しました。 というわけでその対応記です。めっちゃ分量あるんで覚悟するべし! 「Windows7(x64)への移行で私がした30の項目」 ちなみに機種は「HP Pavilion Notebook PC dm3z-1100 Entertainment/CT」 はじまりはじまり~ Aeroデザインの黒いマウスカーソルください → こちらで配布さ
2011年10月31日17:54 カテゴリiPhoneプログラム Xcode4.2のビルド設定をXcode3っぽく扱うTIPS Xcode4.2にしてからはや一ヶ月。 もう元には戻れません! …っていうくらい使い勝手いいです。 ただ、初期状態のまんまだと「それってDebugビルドなの? Releaseビルドなの?」って戸惑った。新たに導入された「スキーム」という概念がじょうずに飲みこめないんだよね。 ので、ソコのとこだけはXcode3の頃と同じように扱える設定を考えてみました。 こんな感じで、タブだけ見るとXcode3まんまです タブに「Release~」とか「Debug~」とか表示されてると、「ああ、デバッグビルドなんだね」って安心できるので^^; スキームの設定をさっそく解説 ではタブをクリックして、「Manage Schemes...」を選んで下さい。 自分で「Debug」と「Rel
2011年06月06日18:50 カテゴリプログラム C++でJSONを読み書きするならpicojson さいきんC++始めました。 まだ始めて2、3日なのですがCにクラスとか色々マクロで拡張を施した言語という印象です。 元々の出発点が「C with Classes」というCの拡張なのだからだと思います。 で、まず標準出入力やファイル出入力のやりかたとか触った後に試したのがJSONのパーサー。 ググって見たらpicojsonなるものを発見!これなんとヘッダファイルだけで実装されています。そういうの好き。 こんな感じで使います。 picojson::value json; cin >> json; picojson::object& o = json.get<picojson::object>(); int hoge = o["hoge"].get<double>(); bool fuga
2011年05月26日20:51 カテゴリEmacsプログラム Emacs23 カーソル位置の単語をいきなりisearch…とか。 先月Emacs22.3から乗りかえたEmacs23.3ですがかなり慣れました。ので、前回の続きで色々知った事や判った事をブログに書いときます。 ではダイジェストでお楽しみください。 OSX版Emacs23.3で、org-modeの挙動が微妙なのは、以下の設定をinit.elに追加したら直りました。やっぱマウス要らないw (defun org-agenda-mode-hooks() (local-unset-key [mouse-2]) (local-unset-key [mouse-3])) (add-hook 'org-agenda-mode-hook 'org-agenda-mode-hooks) (defun org-mode-hooks() (loca
2011年05月09日13:28 カテゴリEmacsプログラム Emacs23.3と暮らし始めてみた 拙作TieGunnerを窓の杜とMOONGIFTで紹介して頂きました。 趣味丸出しで作ったゲームをこうして紹介して頂けて嬉しい限りです。 取り上げて下さった記者の方、完成までに色々とアドバイスをくれた方。動作確認を手伝ってくれた方。…そして何より実際にプレイして下さった方。多謝。 まーちょい裏技入れときゃよかった! ではなくて…これで暮らしていけたら最高なんですが(笑) や、笑い事じゃない! さてさて、久々Emacsの話題。 ちょい前からEmacs22.3→23.3にしたのでその話です。 Emacsって何?って人すいません。こっから下の文章は訳ワカメだと思うので今が最後の退室のチャンスです。ちなみにEmacs、EmacsゆーてますがすべてWindows版(gnupack版)を指してます。
2009年12月16日23:01 カテゴリiPhone iPhone メモリリークでハマらない設定 iPhoneでメモリリークを見つけるのは簡単で、 「実行->パフォーマンスツールを使って実行->Leaks」で起動するInstrumentsを使います。 これでしばらくアプリを動作させると、疑わしきメモリ確保が一覧に表示される、と。 でも、メモリのアドレスが表示されるだけで、どこで確保されたメモリなのかが全然わからん!ちょっと、これ不便なんじゃないの?と思ってドキュメントとかサイトの解説を見ると、リークした場所がソースで表示されるそうなんですが… アレ?そ、そんなん表示されとらんて。 と思って調べる事、数時間… ありました。 Simulator - 3.0 | Debug (address space only in Instrument, i.e. no symbolic linking)
2010年03月02日21:46 カテゴリプログラムiPhone iPhone OpenGLのレンダリング結果をUIImageに変換する時の注意点。 つい先ほどiPhoneアプリ第一弾をAppStoreに提出しました…アワワ。 今月中に吉報をお届けできる…のか? さて、先週末のイベント。今回も色々と差し入れを頂いてしまいました。 本当にありがとうございます。 部長が手伝っとるイベントは演者への差し入れとは別に、スタッフさんへ、とわざわざ差し入れてくれる人が多くて、なんというか、お客さんに大事にされてるイベントなんだな…といつも実感します。 いちゲームプログラマのままでは経験する事の無かったことだがね。 そんで、実はなにげに、ちょっとだけ楽しみにしてたりもして:) さて、イベントの感動も覚めやらぬ間に、さっそく次のアプリ製作を始めてます。 今回はOpenGLをフル活用したアプリになりそうです
2010年01月26日22:57 カテゴリiPhoneプログラム ちゃんとしたAPIを使ってiPhoneスナップショットを実現する 写真は先日差し入れて貰ったお菓子!部長難しい事はよく判らんがとにかく大変美味しゅうございました…。差し入れて下さった方、ほんとうにご馳走様です。 普段、事務所の人間は差し入れに対してゆったり構える派なんだけど。これは一瞬で無くなったね。 で、iPhone関連です。今回は実機上でスナップショットを取得する方法。 UIImage *image = [UIImage imageWithCGImage:UIGetScreenImage()]; よくみかけるこの処理だとうまくいかない。最新の開発環境ではダメか? UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInCon
2010年10月28日17:01 カテゴリEmacsプログラム [Emacs]スクラッチバッファを自動保存したり行末コメントをまとめて削除したりな小粒マクロ集 久々Emacsネタです。 普段使いで「欲しいな」と思った機能をネットで見つけたり自作したり。稚拙だとは思いつつも再び記事にしてみました。 今回は3つほど。どれも非常に限定かつマニアックな内容ですが、興味のある人は5分ほどお時間を頂ければ幸いでっす。 1. スクラッチバッファを保存する メモ帳的に使えて便利なスクラッチバッファ。URLメモやら引用テキストメモやらマクロの実験やらと大活躍!でもうっかりEmacsを終了してしまって痛い目を見た人も多いと思います。…私もかなり痛い目みました。 ので、「終了時に保存→起動時に自動的に読み込み」するマクロを探してみたら…ありました!こんな感じ。 ;;; auto save and restore
2010年08月05日15:38 カテゴリiPhoneプログラム iPhone Objective-Cではないコードのメモリリークを特定するには(今回はソース付き) 今回はメモリリークの話です。 iPhoneでのメモリ管理ですが、Objective-Cのクラスをフル活用してコードを書いているウチは問題ないと思います。InstrumentsのLeaksを使えばコードのどの場所で確保されたメモリかが一目瞭然だと思うからね。 (きっとC++でもそんな感じに違いない) なーのーでーすーがー! 問題なのがCのmalloc()とかcalloc()とかrealloc()とか。これ、InstrumentsのLeaksでも「Malloc area 8K」とかって表示されるんで、その表示の中からメモリリークを探し出すのが至難の技….。 まぁメモリ確保時にクラス名の指定も何もないんだから仕方ないのは判ってるんで
2010年09月17日14:39 カテゴリiPhoneプログラム iPhoneとiPadとiPodとプログラムで見分けるには うを! 気付けばブログが週一ペースというなんとも情けない状況に…!以前の勢いは何処へいっちゃったんだ! け、けしてツイッターとかiPhone4買ったせいじゃないんだぜー あっ…ちょっとだけ…。 それはさておき。 ←勢ぞろい?の図 いろんなトコから同時に「iPadやiPhone、iPodをコードで見分けられるんだろーか」と質問されとりまして、確かにそれが出来たら、より機種に併せて最適なつくりができるだろーねと、ちょっくら調べてみました。 CoCoaの日々 機種名を取得する方法はこちらが大変参考になりました。いつもありがとうございます! んで、文字列で取得するのもアリなんですがちょこっと部長なりにアレンジ。 こんな感じ。 #import <UIKit/UIKit.h>
2009年11月14日20:02 カテゴリプログラムiPhone JSON with iPhone ゲームを作ってると、ハイスコアを保存したくなったり、ロープレだったら主人公のパラメータを保存しといて「続き」ができるようにしたりと、いわゆる「セーブデータ」を扱う事も出てきます。 さいきんは「シリアライズ」と呼ぶそうなんですが…PSの開発をしている時なんかは、乱暴にも構造体のデータをまるっとメモリーカードに書き出しておしまい。てな具合で、極めて原始的な手続きで済ませてました。 でもこれだと、構造体の中がほんのちょっとでも変わるともうアウト! 規模の小さいゲームなら「もっかい最初からプレイして」も通じるけど、ドラクエとかFF級の開発でそれはありえないよね。 っていうんでみんな最近はどーしてるかっていうと、XMLやらYAMLやらJSONやらの汎用的なテキストフォーマットを使ってるみたいです(詳し
2010年03月07日23:17 カテゴリプログラム Emacsのインクリメンタルサーチをさらに加速するプチマクロ ここに書いたったhack。 これを思い付いた人は、かなりのEmacs通だね。 で、ちょこっと直しつつありがたく使わせてもらいなす。 リージョンがあればその文字列、なければカーソル位置の単語をいきなりisearchするマクロ。ブログをいつも読んでくれてる人なら、パッと見て処理内容が把握できる規模なんじゃないかな。 (global-set-key (kbd "C-\\") 'my-isearch-get-word) (defun my-isearch-get-word() "カーソル位置の単語をisearch" (interactive) (if(not isearch-mode) (call-interactively 'isearch-forward))) (defun my
2010年06月30日18:19 カテゴリiPhoneプログラム iPhone TrueTypeフォントを自前で縦書き。折り返し地点やや手前。 iPhoneでのTrueTypeフォント縦書き処理がようやく25%くらいできたので、中間報告めいた感じで。半分もいってないのに中間…! iPhoneでフォントを扱う場合、部長は CGFontRef を使ってます。他にUIFontというクラスがありますが…ttfファイルを読み込んで描画という場合はCGFontRefを使うんじゃなかろうかと。どーなの? で、こんな感じで実装を進めとりますが、縦書きの場合は括弧や句読点をそのまま表示するとおかしな事になるので、ソフト側で90度回転したり専用処理で対応する必要がある。で、フォントによっては縦書き用のデータ(グリフ)を持ってる場合があるので、自前でデータにアクセスしてデータを引っ張り出す訳だ。 iPhoneで
2010年08月21日20:49 カテゴリiPhoneプログラム iPhone UIViewのアニメーションの一時停止と再開 きっと、もっと良い方法があるとは思うのですが、メモ的にブログに書きます。もっと良い実装があれば是非教えて欲しい! UIViewのアニメーション、多くの人がこんな感じに実装していると思います。 [UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationDuration:0.5]; // ここでアニメーションさせる内容を書く [UIView commitAnimations]; ですが、ドキュメントをパッと見、アニメーションの一時停止/再開させ
2010年08月12日16:02 カテゴリiPhoneプログラム iPhone mp3やAACのループ再生(ストリーミング)に挑戦。 iPhoneアプリの開発に没頭する日々です。 没頭するあまり、危うく電話止められそうになりました。携帯電話の料金振り込みを2カ月続けて忘れてて…。さっきサポートに電話して事無きを得ました…ふぅ。 で、新しいプロジェクトが立ち上がる度に必ず何か新しい事に挑戦しています。もう10年以上続けている日課のようなものですが。今まさに提出しようとしているアプリは独自フォントでの文字表示。で、次回作はオーディオのストリーミングを組み込もうって事で、ネット上にあるサンプルを元に実装してみました。 ・ループ再生に対応 ・HTTPストリーミングにも対応 まあこんな感じ。参考にしたプログラムの完成度が非常に高く、目標を達成するのにそれほど時間はかからず。この素晴らしいサンプルを公
2010年08月10日18:30 カテゴリiPhoneプログラム Objective-C 改めてNSValueの基礎をおさらいする。 iPhoneアプリのリリースに向けた作業の合間のブログの更新はちょっとだけ後ろめたい。でも書くよ。 こないだブログに書いたNSValueの話の続き。というか、こっちを先に書くべきでした。NSValueの使い方。 Cの構造体をNSArrayやNSDictionaryで扱おうとすると、こんな感じにコードを書きたくなるよね。 sHoge hoge; NSArray *array = [NSArray arrayWithObject:&hoge]; でもこれだとダメで、Objective-Cのクラスにラップする必要があります。これ、ちょっと前にNSDataが使えるよ、という例をブログに書いたけど、NSValueでも扱えるみたいなので、その検証をしてみるのだ。プログラ
次のページ
このページを最初にブックマークしてみませんか?
『blog.livedoor.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く