#freeze
#norelated
[[FrontPage>../../../]] > [[GameDevelopment>../../]] > [[Objective-C>../]] > [[WWQ>./]] (Now)
#title(iPhone で RPG を作ろうず!)

------------------------------
#contents
------------------------------

* はじめに [#tacb4fe3]
iPhone で RPG を作ろう!という趣旨で始めたプロジェクト

* 設定 [#ef94605b]

** 仕様 [#hc9b12af]
:システム名 | "With Words Quest : WWQ"
:概要 | テキストベースで、シェイクとかタッチとかで進める、ドラクエ風味な感じのやつを作ります。

** ソースコードはどこなにないかな? [#wde1f53a]
Objective-Cで、同じようなプログラムが落ちていないか探してみます。~
日本語のドキュメントは、残念ながらなさそう。~
ただ、英語のドキュメントはありました。海外レベル高い。~
あれ、肝心のRPGのソースコードはないなぁ...。~
自分で作れってことですね、はい、最初からわかってました(笑
自分で作れってことですね、はい(笑

** どう実装しようかな? [#i66cf752]
++メインループ中で、デバイス操作を通知し、それに伴う動作を行う。~
これだけだわ。簡単簡単...たぶん。
メインループ中で、デバイス操作を通知し、それに伴う動作を行う。~
これだけだわ。~
簡単簡単...たぶん。


* 作ってみようず! [#l267f886]

なにはともあれ、作ってみないと始まらない。~
** 戦闘システム作ろうず! [#j5357a42]
いきなり、戦闘システム作りましょ、楽しいし。
[[※ 詳しくはこちら>./Battle]]
いきなり、戦闘システム作りましょ、楽しいし...[[※ 詳しくはこちら>./Battle]]
** キャラクタのパラメータ作ろうず! [#i528659e]
Character クラス再考かな...[[※ 工事中>./CharData]]
** 画面遷移作ろうず! [#nf1b9d94]
タイトル画面から、ゲーム本体、戦闘までをアニメーションさせて遷移させたいな...[[※ 工事中>./Scene]]
** データセーブとロード作ろうず! [#d5b9d31e]
ファイルの入出力のテスト、かな...[[※ 工事中>./SavenLoad]]


*** やってみよう! [#oc03a84e]
なにはともあれ、作ってみないと始まらない。~
XCodeを起動して作成開始〜です。~
++NSLogで動く、テキスト戦闘~
iPhoneSDKで、わっけわかんねー!!となる前に、まずは戦闘システムを作ってしまいます。~
ま、ここさえできれば、あとは表示するにはどうするか考えるだけなので、6割完成としていいでしょう。~
* Memo [#yde441ed]
開発中のメモを...[[※ 詳しくはこちら>./DevMemo]]

* Error [#z74374af]
開発中に遭遇したエラーと、対処法を...[[※ 詳しくはこちら>./Error]]





***開発中メモ [#eaeae43b]
-UIWindow~
-UIViewController - init~
loadVIew: ~
子となるUIViewオブジェクトを作成して、それをViewControllerにアンカーする。~
つまるところ、ここで表示するオブジェクトのインスタンス化を全部行ってしまえばいいのかな?
-UIView - initWithFrame:CGRect...~
サイズ指定必須~
インスタンス化されると、[drawRect(): (CGRect)_rect]が自動的に呼び出される。
-テキストを残しておきたい場合のアイディア~
スクロールしていくテキスト(チャットみたいな)を作る場合、配列に入れて、ある程度たまったら消していく...~
あっ!スタック使えば良いんだ!~
なんだ、そうかそうか。~
NSMutableArrayクラスが、とにかく便利。
- 日本語が文字化けしている...
-- ローカライズ関連の話みたいなんだけど、メーリングリストで話し合われていた気もする。~
文字コードの問題でした。~
NSMutableString を使って、可変な文字列として扱い、それを obj.text に反映させることで解決!
- キャラクターとかのデータ構造に対するアイディア
-- んー、予測するに、構造体だよな。~
で、中身のデータはどこにあるんだろう。~
普通に生データにしておいておいてもいいんだけど、容量がな...。~
暗号っぽく、数値計算で出されたデータを保存しておいて、それを関数で復元するとデータになる。~
そんなのができたらデータはかなり圧縮されるのにな。~
ここでツール制作の技術が問われるわけか...。~
ま、いまんところは、NSDictionary クラスを使ってみようと思います。~













***遭遇したエラーと、解決策一覧 [#oaaef476]
- error: request for member in something not a structure or union - 構造体、共用体ではないなにかがメンバーとしてリクエストされています
-- ポインタ関連のエラーみたいなのですが、実は使い方は間違っていませんでした。~
ただ、UIView に loadView() を実装していた管理人が馬鹿なだけです...orz~
loadView() は、UIViewController のインスタンスメソッドだってーの...。
- 表示されない! - [UIView addSubView:] の使い方
-- なんか、おかしい。おかしいぞ、表示されない。~
と、おもったあなた。~
とりあえず、インスタンス化したついでに、addSubView: を使って既に表示されているViewに、サブビューとしてアンカーしましょう。
- 表示されない! - アンカーする対象の違い
-- addSubView: するにも、どこにアンカーすればいいの?~
とりあえず、ソースコードを見ると、self.view と self の違いがある。~
これらの違いは、そもそもなんなのか?~
viewプロパティについて調べてみた。~
UIViewControllerクラスのプロパティで、そのコントローラが管理しているUIViewのことみたい。~
ほいでは、どうするのか。~
とりあえず、おまじない的な法則としては...addSubView: のアンカー先は~
1. UIViewControllerでは self.view を使う。~
2. UIViewクラスでは、self を使う。~
でいいみたい。
- やったー!Viewインスタンスが表示されたー!けど、ずれてるぞー! - applicationFrames と bounds の違い
-- この2つのパラメータをいじる!(笑
- UIInterfaceOrientationって、どうつかう? 
-- 実は、UIViewでは、回転する度に[drawRect:]が呼ばれているのだった!~
で、肝心の使い方はよくわからない!!(笑~
向きとか云々の前に、回転する方向とかを定義するものなのかな?~
加速度センサとかセンサ類のHackのときに調べてみたいと思う。
- Tocheで関数を起動したい
-- UIView は、UIResponder というクラスを拡張しているので、何もせずにタップイベントを受け取るみたい。~
ただ単にクリックを実装するだけなら、UIResponder クラスにある touchesBegin: という関数をOverride 定義すればよい!~
- Touch Event を受け取ってくれないよー - UIView.userInterractiveEnable~
この propaty を NO にすると、NOにした の View からの interraction を 無視するようになるので、これでただの表示物になるわけです。
- UIAlert が実機でうまくいかない! - なにか忘れていませんか?
-- UIAlertのオブジェクトには、必須の委任クラスがあります。その名も...。~
alertView:clickedButtonAt: というメソッド。~
これを必ず実装しないといけないみたいです。
- NSArray ってどうつくるの? - 
--なんかこう、要素を入れている動作をしているはずなのに、NSLog() には (null) しか表示されないんだよな。~
クラスクラスタとして実装してあるとか、なんとか?~
生成と初期化の仕方も微妙に違うみたいだし、どうするんだろう。~
あれ、普通に生成と初期化できた...。クラッシュエラーがでていたのだけど、何が逝けなかったのだろう。











* 参考資料 [#b70dc94d]
** iPhone Development 関連 [#ncaa0261]
:[[iPhone Dev SDK - The Communit for the iPhone developer community:http://www.iphonedevsdk.com/]] | 英語だけど...。~
Errorの対処方法とか調べるときに。

** iPhone Game Development 関連 [#o6de9b83]
:[[iCodeBlog:http://icodeblog.com/]] | 英語圏にはいい資料がゴロゴロ
~[[Category iPhone Game Programming:http://icodeblog.com/category/iphone-game-programming/]] ~
[[iPhone Game Programming Tutorial – Part 1:http://icodeblog.com/2009/01/15/iphone-game-programming-tutorial-part-1/]]~
[[iPhone Game Programming Tutorial Part 2- User Interaction, Simple AI, Game Logic:http://icodeblog.com/2009/02/18/iphone-game-programming-tutorial-part-2-user-interaction-simple-ai-game-logic/]]~
[[iPhone Game Programming Tutorial Part 3 – Splash Screen:http://icodeblog.com/2009/03/18/iphone-game-programming-tutorial-part-3-splash-screen/]]~
[[iPhone Game Programming Tutorial Part 4 – Basic Game Audio:http://icodeblog.com/2009/05/04/iphone-game-programming-tutorial-part-4-basic-game-audio/]]~
[[iPhone Programming Tutorial: Animating A Game Sprite:http://icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/]]


:[[iPhone Development Tutorials and Programming Tips:http://maniacdev.com/category/opengl-es-game-programming/]] |
~[[Cocos2D Game Engine:http://mitchallen.com/iphone/archives/254]]~
使えそうなライブラリを発見。英語圏はすごいなぁ。~
[[Incredible iPhone Game Programming Tutorials With Video:http://maniacdev.com/2009/07/incredible-iphone-game-programming-tutorials-with-video/]]~
なんと動画で、チュートリアルが!英語圏はすごいなぁ。~
[[The Commercial iPhone Game Engine Comparison (3D and 2D):http://maniacdev.com/2009/09/the-commercial-iphone-game-engine-comparison-3d-and-2d/]]~
商用ゲームエンジンの比較ですって!英語圏はすごいなぁ...orz~

** 日本語でかいてあるもの(笑 [#p3c7751a]
:[[おなかがすいたWiki iPhoneSDK:http://wiki.onakasuita.org/pukiwiki/?iPhone%20SDK]] | ふむ、よいリンク集?
:[[iPhone/Touch コーディング方法 覚え書き Top - クラスの継承関係:http://www.urawaza.jp/iphone/touchwiki/index.php?%A5%AF%A5%E9%A5%B9%A4%CE%B7%D1%BE%B5%B4%D8%B7%B8]] | クラス階層についての記述があったので、Bookmark!
:[[iPhoneSDK他いろいろ 開発メモ:http://d.hatena.ne.jp/uosoft/20090817/1250435305]] | 使えるTips集!先人の方々の取り組みには頭があがりません。負けないぞ。

* 参考文献 [#x5d54ea5]
** Objective-C 書籍 [#nf054f9c]
:[[詳細Objective-C2.0 - 荻原剛志著 2008.06.01 Softbank Criative:]] | もはや語るまい。神本。
** iPhone SDK 書籍 [#qbb49195]
:[[iPhone SDKの教科書 Cocoa Touch プログラミング、最初の一歩 - 赤松正行著 2009.05.25 秀和システム:]] | 初歩の初歩を学ぶなら、これ!~
Interface Builderに習熟できると思う。
:[[iPhone SDK アプリケーション開発ガイド - Jonathan Zdziarski著 近藤誠監訳 2009.09.02 O'Reilly Japan:]] | 良すぎるくらいの本。~
Interface Builderで開発したくなかった管理人は、ここでその術を学びました!(笑



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Ads by Sitemix