FrontPage > GameDevelopment > Objective-C > WWQ > DevelopmentMemo(Now)



UIWindow

UIViewController? - init

loadVIew:

子となるUIViewオブジェクトを作成して、それをViewController?にアンカーする。
つまるところ、ここで表示するオブジェクトのインスタンス化を全部行ってしまえばいいのかな?

UIView - initWithFrame?:CGRect...

サイズ指定必須
インスタンス化されると、[drawRect(): (CGRect)_rect]が自動的に呼び出される。

テキストを残しておきたい場合のアイディア

スクロールしていくテキスト(チャットみたいな)を作る場合、配列に入れて、ある程度たまったら消していく...
あっ!スタック使えば良いんだ!
なんだ、そうかそうか。
NSMutableArray?クラスが、とにかく便利。

日本語が文字化けしている...

ローカライズ関連の話みたいなんだけど、メーリングリストで話し合われていた気もする。
文字コードの問題でした。
NSMutableString? を使って、可変な文字列として扱い、それを obj.text に反映させることで解決!

キャラクターとかのデータ構造に対するアイディア

んー、予測するに、構造体だよな。
で、中身のデータはどこにあるんだろう。
普通に生データにしておいておいてもいいんだけど、容量がな...。
暗号っぽく、数値計算で出されたデータを保存しておいて、それを関数で復元するとデータになる。
そんなのができたらデータはかなり圧縮されるのにな。
ここでツール制作の技術が問われるわけか...。
ま、いまんところは、NSDictionary クラスを使ってみようと思います。

ランダムな数値の出し方

どうやら、C言語のrand()でやってるサンプルが多いな...Ob-Cにはないのかな?
問題は、クラスを使ってどうやってrand()を実装するかなのだ。
Utility Class を作ろうと思って、クラス変数としてrandx()みたいなものを実装しようとしている。
その中で、C言語のrand()を使いたいのだけど、randのseedも決定して、常にランダムな値が出るようにしたい。
そのために、time_t構造体をクラス変数として定義していいものなのか?
例えば、インスタンス変数として宣言してみる。
seedの値がうまく適応されていなくて、毎回同じランダムな数値が出る。
1つの解決策として、rand()を使用している関数に対して、srand(seed)の値を使用している関数の前で宣言してみよう。
できた。けど、なんか美しくない。
少しだけ、考えてみよう、どうしてできないのか。
問題は、スコープにあると思う。
クラス変数として宣言したり、クラス変数内で初期化したりすると、どこまでがスコープかわからない。
最初はクラスが使用されるところでスコープになるかと思いきや、そういうわけでもない。
rand()を使用している関数の前で宣言するとうまくいく。
呼び出すクラスと同じところにスコープがあるのかな?
ためしに、もっと前で宣言してみるか...。
1つ前のクラスで宣言するとダメでした。
てことは、rand()関数を呼ぶクラスの方でsrand()をしないといけないんだな。
メモがてら、成功した時の一文。

1
2
3
4
5
6
time_t seed;
seed = time(NULL);
srand(seed);    
for (int i = 0; i < 20; i++) {
  NSLog(@"class method test : %d", [[WWQUtility init] xDy :2 :20]);
}

さらに、改良を加えたい。

やっぱり、Utility Class だけで、ランダムシードも設定したいじゃん

さて、新しい方法を思いついたので、実験してみる。
クラスオブジェクトがプログラム開始時に一度だけ作られるとしたら、その瞬間に srand() を設定しちゃえば良いじゃん?
てことはだよ、プログラムの中で一度だけしか呼ばれない箇所を探してみれば良い。
欲を言うなれば、戦闘開始時に一度だけ呼ばれる場所に保存しておきたい...。
ん?BattleView? の init メソッドのところじゃないか...。
あ...普通にできちまったぜ。
朝になると解決する。よくあることです^^

Messageの表示について再考

思ったことがある、Messageの表示は、事が起こった瞬間に、一行ずつ足していけないだろうか?
そっちの方がスマートになるし、なんか、ドラクエっぽい。


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-10-08 (木) 11:16:54 (3763d)
Ads by Sitemix