にけのて
Nike+iPod と JogNote を使ってジョギング。で、Mac から Nike+ のデータをあれこれ見たくなったので、ちょこちょこっと作ってみた。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SDL のデモを Mac の Xcode でビルドしてみた
とりあえず選んだデモコレ、Bouncing Penguin。デモを上から見ていって MacOS X のマークが付いてるのがなかなか出てこなくて…。Boom と Bouncing Penguin でどちらにしようか迷って、ペンギンなのでこっちにした。
ダウンロードした bouncing.zip を展開すると…macosx フォルダに Xcode のプロジェクトファイルがあるわけじゃなく…。README には make してね!とあるけど、今回は Xcode で SDL のテンプレートを使ってビルドしたいので make はしない。

bouncing.c を眺めてみるとどうやら SDL_mixer の Framework が必要らしい。ググってさっくりバイナリをダウンロード。マウントして SDL_mixer.framework を /ライブラリ/Frameworks/ へコピー。これで準備は OK。
SDL_mixer


まずは Xcode を起動して SDL Application のプロジェクトを作る。
SDL-Application

名前は myBouncing にする。
SDLprojectName

出来上がったプロジェクトに Framework を加える。/ライブラリ/Frameworks/ から SDL.framework と SDL_mixer.framework を Frameworks グループへドラッグ&ドロップ。
SDLaddFramework

ダイアログには特に何もせずに[追加]をクリック。
SDLaddFrameworkDialog

次にデモの bouncing フォルダから画像データ(bouncing.bmp)と音データ(bouncing.wav)を Resources グループへドラッグ&ドロップ。これもダイアログには何もせずに [追加] をクリック。
SDLprojectAll


ソースコードは bouncing.c をそのまま main.c にコピーして、コピーした main.c の int main をオリジナルのもの

int main(int argc, char *argv[])


にしておく。

これでビルドすれば OK!と思ったのだけど、エラーが出た。

/Users/paraches/myBouncing/main.c:12:23: error: SDL_mixer.h: No such file or directory


だそうだ。う~ん、ヘッダファイルが見つかってない???
というわけで、ターゲットを選択して command+I で情報を見る。ビルドタブ?の下の方、検索パスのヘッダ検索パスに /ライブラリ/Frameworks/SDL_mixer.framework/Headers/ を加えた。
SDLaddHeader

再度ビルドすると今度は無事ビルド終了。
早速実行すると…GDB が起動。コンソールを見ると

Error: 'bouncing.bmp' could not be open: Couldn't open bouncing.bmp


だそうだ。

どうやら

s_surface = SDL_LoadBMP("bouncing.bmp");


ここで bouncing.bmp が読み込めてないらしい。リソースはどうやって読むのよ?と思ったら、どうもファイルを読むのはアプリケーションと同じフォルダにあれば読めるらしい。それじゃデータをアプリの中に入れられないじゃん?と思ったらこんな事をして読み込むんだそうな。

s_surface = SDL_LoadBMP("myBouncing.app/Contents/Resources/bouncing.bmp");


なんか格好悪い。アプリの名前をコロコロ変える事はないだろうけど、それをソース内に書いちゃうのはなぁ~。
で、SDLMain.m の方を見ると

- (void) setupWorkingDirectory:(BOOL)shouldChdir


なんてものが。アプリケーションの起動が終わった時に呼ばれてる。ここでカレント?フォルダをアプリケーションのあるフォルダにしているので、そうでなくて Contents/Resources フォルダをカレントフォルダにしてしまえば良いんじゃない?
というわけで

[[NSFileManager defaultManager] changeCurrentDirectoryPath:[[NSBundle mainBundle] resourcePath]];


を - (void) setupWorkingDirectory:(BOOL)shouldChdir の最後に入れておいた。これで必ずカレント?フォルダを Contents/Resources に変更できる。

というわけで、再度ビルドして起動!
無事エラーも出さずに bouncing penguin が起動した!

それにしても、Xcode の使い方あんまりわかってないな~。

スポンサーサイト

テーマ:Mac - ジャンル:コンピュータ

Mac の Xcode で SDL Framework を使ってみる
SDL を使ってみることにしたのでその記録。
環境は MacOS X 10.5.2 で Xcode 3.0。

インストール
本家から SDL-1.2.13.dmgSDL-devel-1.2.13-extras.dmg をダウンロード。
SDL-1.2.13.dmg をマウントして SDL.Framework を /ライブラリ/Frameworks へコピー。(コピー先のフォルダ名を間違えていたので修正!)
SDL

SDL-devel-1.2.13-extras をマウントして TemplatesForXcode に入っている4つのフォルダを /ライブラリ/Application Support/Developer/Shared/Xcode/Project Templates/Application にコピー。Application Support 以下に Developer フォルダが無かったので、そこから下のフォルダを自分で作って入れた。
SDL-extra

これで Xcode を起動して新規プロジェクト…で Application の下にさっきコピーした4つのプロジェクトが出てくれば OK。
SDL-Application


テーマ:Mac - ジャンル:コンピュータ




プロフィール

Author:paraches
Nike+iPod で走ってお腹を…

にけのて ダウンロード

Nike+iPod

温泉旅行

宿・ホテル予約ならじゃらんnet

最近の記事

Zenback

ランキング

人気ブログランキングへ

アクセストレード

バリューコマース

最近のコメント

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。