トップページへ戻る
つくれる?iPhoneアプリ
cocos2dを使ったiPhoneアプリ制作を解説してみる

その8


どのページでも
ご自由にリンクしてください。

感想ご要望はお気軽に!
info@taskinteractive.com


■順番に解説
・導入
その1
導入


その2
HelloWorld


その3
わからない単語でも安心


その4
いじるファイルと画面構成


その5
ソースにある単語を手探る


その6
実行の順を追って手探る


その7
クラスの名前と素性を手探る


・サンプル1
その8 ボール遊び1
Scene/Layer/Sprite


その9 ボール遊び2
ファイル名を変えてみる


その9 ボール遊び3
ソースをいじってみる



■項目ごとに解説
クラスの解説
その1 クラスって何?


クラスの解説
その2 インスタンスって何?


クラスの解説
その3 オブジェクト指向って何?




企画・販売元タスクインタラクティブ


HelloWorldScene.h/HelloWorldScene.mを改造

ここではためしに、『HelloWorldScene.h/HelloWorldScene.m』を改造して、ボールのためのレイヤーを作ってみましょう。
そうすると、ちょっと別の角度から理解をする手がかりがつかめます。



では HelloWorldScene.h と HelloWorldScene.m をそれぞれ、
BallLayer.h と BallLayer.m に変更してみましょう。



『グループとファイル』から、 HelloWorldScene.h を選択して、名称変更します。
続けて、HelloWorldScene.m です。



で、忘れてはいけないのは、 HelloWorldScene.h と HelloWorldScene.m を、関連付けているファイルのインポート関係の記述です。


これは、『ballLayer.m』に変更したファイルの一番上のほうにあります。



ここの、

#import "HelloWorldScene.h"


この行を

#import "BallLayer.h"


に直します。







ここで試しにビルドしてみましょう。


 :
 :

エラー終了しましたね。


cocos2dBallAppDelegate.m のファイルを開いてみてください。



赤いバーでエラーが表示されているはずです。
なんて書いてあるか見てみると・・・

error: HelloWorldScene.h:No such file or directory


HelloWorldScene.h というファイルが無いよ、と言っています。

それもそのはず、先ほどそのファイルの名前は BallLayer.h に変えてしまいましたね。

なので、cocos2dBallAppDelegate.m から HelloWorldScene.h を読み込もうとして失敗したのです。



なので、この記述も直します。
このエラーメッセージのすぐ上に、先ほど直したのと同じような記述がありますね。

#import "HelloWorldScene.h"


この行を

#import "BallLayer.h"


に直します。


そして、ビルドしてみましょう!






無事、元と同じように表示されました。



おさらい

ここでもう一度今回の作業を振り返ってみてください。

ここでは、単に“ファイル名を変更した”だけです。
@importの部分を除き、プログラムの中身をいじったわけではありません。


でも、エラーを含めいろいろなことが判ったと思います。

@import という記述は、ファイル名を指定してファイルを読み込んでいることが判りました。
また、import の関係がちゃんとしていれば、ファイル名を変更しても、プログラムの動作に影響が無いことがわかりました。
そして、クラス名などとファイル名も、便宜上同じにしているだけで、実は同じじゃなくてもいいことがわかりました。


このあたりの、どの名前とどの名前が一緒じゃなきゃいけないとか、実は関係が無いとかがわからないと、なんとももやもやしてしまう人もいますよね。