前回、いろんな困難に遭遇しながらも何とか乗り越えて来た「cocos2d for iPhone レッスンノート」のAsteroidをkobold2dで作る件ですが、、、
ついに続行を断念する事態に陥りました。
p.193〜202のコードを入力して敵キャラクターを作成したのですが、敵キャラが表示されませんでした。。。
もちろん、入力間違いは何度も見直して潰し、NSLogやデバッガのブレークポイントで正しく動作していることは確認しました。あと、CCSpriteで敵キャラのpng画像を普通に表示することもできました。
でも、本の通りに入れても出てこない。。。
そこで、前回のように変数のスコープを変えてみたりもしましたが、全くダメ。
仕方ないので、そこは無視してp.203〜210まで先に進んで入力してみましたが、自弾すら表示されない。さらに、画面を揺らすエフェクトに使われているCCSparkeyは、deprecated(非推奨)だと警告されてしまいました。
このまま続けて行っても壁にぶつかることが分かったので、続行を断念。楽してkobold2dを習得して、そのまま自分のゲームのベースにしようと思いましたが、結果的に遠回りになってしまいました。
という訳で、別の方法でゲームの土台を作らねばならなくなりました。
そこで、kobold2dに入っていた「Parallax-Side-Scroller」というゲームサンプルに注目しました。
そのままiPhoneシミュレーターでRunすると、こんな感じのサンプルです。
「cocos2d for iPhone レッスンノート」のAsteroidをcocos2dで入力したことがあるので、コードを見ると何となくやってることが分かる気がしました。
これなら解説が無くても何とかなりそうだと考え、これをベースに改造して自分のゲームを作ることにしました。
まず、私が作りたいゲームが縦画面なので、縦画面にすることにしました。
これは簡単でした。「TARGETS」の「Summary」にある「Supported Interface Orientations」で、「Landscape〜」から「Portrait」にすれば、、、
また、Side-Scrollerというくらいなので、横スクロールのサンプルだと思うのですが、私が作りたいゲームはスクロールしないので固定背景にしました。以下のコードを消して、
1 2 |
ParallaxBackground* background = [ParallaxBackground node]; [self addChild:background z:-1]; |
CCSpriteでaddChildしてあげたら表示できました。
1 2 3 4 |
CCSprite *background =[CCSprite spriteWithFile:@"back_day.jpg"]; background.anchorPoint =ccp(0, 0); background.position =ccp(0, 0); [self addChild:background z:-1]; |
あと、画面上のジョイスティックも不要なので、以下のコードを消しました。
1 2 |
InputLayer* inputLayer = [InputLayer node]; [self addChild:inputLayer z:1]; |
こんな感じで、やり方を変えてiPhoneのゲーム作りを続けて行けそうです。