club6100.neの支店のブログです。
iくらげ、suika、umzの3人がいろいろな話題について書いていきます。
変数の初期化
Cと違って、変数の初期化はクラスの宣言の中ではできない。 クラスの定義の外で、Cとして宣言すれば、宣言と同時に初期化もできる。
// ヘッダファイル
@interface GameMainScreen : NSView
{
NSImage* pattern[10];
NSImage* chara_pattern[10];

int currentX; // 現在の座標
int currentY;
}

int map_size = 15;
この、map_sizeを15で初期化する行が、クラス定義の中に書けない、ということ。
| Cocoa | 21:54 | comments(0) | trackbacks(0) | - | - | このページのトップへ
書籍「Cocoa Programming」到着

注文していた「Cocoa Programming」の本が今日、届きました。

1245ページの分厚い本です。のんびり進めていくことにします。

| Cocoa | 17:16 | comments(0) | trackbacks(0) | - | - | このページのトップへ
頭痛が

Cocoaでのオーディオファイルの扱いの情報の少なさに、頭痛がしてきました。 本当の話です。ちょっと深く考え込みすぎたかも。

これなら、その後にやろうとしていたMIDI関係のプログラムを先に進めた方がいいかもしれません。 とはいっても、オーディオファイルが扱えることがやっぱり最優先だし…。

頭痛が取れてから、もう少しがんばってみます。

| Cocoa | 22:52 | comments(1) | trackbacks(0) | - | - | このページのトップへ
オーディオファイルが鳴らせない…

NSSoundを使うと簡単にオーディオファイルが鳴らせますが、

  • 再生
  • 一時停止
  • 終了
しかできません。 でも、今やりたいのは、任意の位置からの再生です。 できれば、波形の描画と再生ピッチのコントロールも。

そのためのはCoreAudioを使わないといけないようですが、現時点ではさっぱり不明。 NSSoundとCoreAudoには難易度に差がありすぎです。

Cocoa関連のプログラミング本には画像の描画や表示については 書いてありますが、CoreAudioはまだ新しい話で、ネット上にもサンプルは見つからないし…。 今日は数時間いろいろ試しましたが、収穫なしでした 悲しい

ちなみに、NSTaskを使って外部コマンドのmpg123を呼ぶというサンプルは見つけました。 でも、mpg123では、任意位置から再生するとそこまでスキップする処理に時間がかかって、 すぐ再生されないという問題があったので、自分のプログラムには使えませんでした。 残念。

さらにちなみに、mpg123はコンパイルが通らなかったので、finkからインストールしました。

| Cocoa | 00:03 | comments(0) | trackbacks(0) | - | - | このページのトップへ
Cocoaがとっつきにくいのは

Cocoaをちょっとやってみて、とっつきにくかった理由がわかりました。

  • Objective C(それまではC++)
  • Cocoa(それまではfoxやgtk)
  • Xcode(それまではg++)
というように、いちどにいろんな要素を乗り換えなければいけないからだ、と。

Objective-C自体は、それほど大きな言語ではないので、なんとかなりそうです。 でも、Cocoaはどんな関数があって、どんな引数があるのかが、オンラインドキュメントではまったく不明。 見通しが悪すぎてどうにも動けませんでした。 しかたないので、Cocoa関連のプログラミング本を何冊か読んでみたら、ようやくわかってきました。

結論としては、Cocoaは本を読みながらじゃないと厳しいですね。 ネット上にはまとまった情報、というのは見当たらないようです。

Xcode自体はいいソフトだと思いますが、Interface Builderでのいろいろな要素の結びつきを矢印で指定するってのが、ちょっとやりにくいです。 指定することは簡単でも、あとでその指定を見直そうとしたとき、どうなってるかがすぐわからなくて困ります。

| Cocoa | 18:52 | comments(0) | trackbacks(0) | - | - | このページのトップへ
Cocoaのメソッド名

Cocoaのプログラミングで、メソッド名を間違えててもコンパイルが通ってしまうという件ですが、XcodeではEscキーを押すと、メソッド名などの補完ができるので、それを使えばいいようです。なるほど。

今、ちょっとした電卓(と言っても、自分的にはかなり便利な機能つき)を作っています。

| Cocoa | 23:44 | comments(0) | trackbacks(0) | - | - | このページのトップへ
Objective-Cって

Cocoa環境でプログラムを作るためにObjective-Cを勉強しています。

メソッド名(C++でいう、メンバ関数の名前)を間違えていても、コンパイルを通ってしまうのが なんとも…。 型が弱いので、その分、コンパイル時のエラーは少なくて、実行時に判明するようになってるわけですが。

たとえば

writeRTFDToFile
なんてので、1文字入れ替わっててもなかなか見つからなくて苦労します。 どこかに警告でも出てるんでしょうか。

| Cocoa | 17:24 | comments(0) | trackbacks(0) | - | - | このページのトップへ