リンク
とp

2012年08月12日

その2、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月5日から8月11日までの作業内容

その2、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月5日から8月11日までの作業内容

<開発項目リスト目標>



1、画像の移動アニメーション
2 タップによる画像の消去または画像の変更
3 複数スプライト設定(六匹ほどランダム表示)
前回はここまで終わりました。

今回はここからです。ここら辺で、一旦別のプロジェクトかターゲットにして、再度コードを入力し直して余分なところを整理します。
 

今回はここからです。
4 score設定、タップでポイントアップ加算


参考にしたサイトです。

http://www.hideblog.net/nikkis/show/304/
ひでぶろぐ。 cocos2d アニメーション繰り返し

http://blog.9wick.com/2011/10/cocos2d-ccsprite/
Cocos2dでCCSpriteの画像を切り替える方法 | エンジニア開発記

http://libro.tuyano.com/index3?id=548004&page=3
プログラムの構造化 〜関数と構造体〜(3/4):Objective-C初心者のためのC言語超入門

http://c-production.com/contents/c/sec11.html#13
C言語入門 11.構造体

http://cocoadays.blogspot.jp/2010/08/nstimer-blocks.html
Cocoaの日々: NSTimer を Blocks で処理する

http://cocoa.synck.jp/1237172145.html
ストップウォッチを作ろう(3) - Cocoaプログラミング


http://solitary-air.blogspot.jp/2009/08/nstimer.html

http://libro.tuyano.com/index3?id=562002&page=2

http://blogs.yahoo.co.jp/ino_do/31093427.html




4 score設定、タップでポイントアップ加算、


 タップで、消せたら、ポイントを表示して加算します。
 まず、作成手順をリストにしました。
 1.タップして、消えるときに、ポイントを加算します。
 2.スコアーとして表示します。
 3.連続タップできるとボーナス加算をします。判定用変数、加算カウンター変数を用意します。
   変数がTRUEなら、加算カウンター変数をカウントアップして、ボーナス点を加算します。ミスを犯したら、初回の変数をFALSEにします。
 FALSEになるとボーナス加算しません。カウンターをリセットします。スコアはそのまま。
 
スコアのラベルです。
120812-0001.png


あまり進みませんでした。
進まなかった理由としては、ワニさんに食べられるときに、他のアクションを設定したかったのです。
CCRatateなど試したのですが、期待した動きになりません。


が、個別の変数とその判定処理が必要となります。
いまは、NSMutableArrayでCCSrite管理をしています。
個別の特有の状態を示す変数は管理していません。
個別の変数の管理をするには、構造体かひよこさんクラスを作成する必要があります。
別のクラスを作成して、確認しようとすると、時間がかかりそうなので、次回にしました。
スプライト画像のアクション設定
120812-0002.png

スプライト画像設定
120812-0003.png

右側の領域に入ると消えます
120812-0004.png

タッチイベント
120812-0005.png

 

10 制限時間の設定、


予定ではもっと先の予定だったのですが、簡単にできるだろうと思って作業に取りかかったらはまりました。
日付の秒から計算すれば良いのかと思ったら、日付を文字列の変換が面倒だったりとObjective-Cの文法が面倒だったので、NSTimerの方が便利だったので、タイマーにしました。
しかし、1秒ごとに表示する設定のはずが、1秒ごとに表示されていません。
あるときは、一気にカウントされてます。
これだと時間の表示なりません。
描画処理に手間取っているのでしょうか?
他の手段を検討します。

また、バグが見つかりました。6回ほど、ゲームが繰り返されると、シーンがゲームオーバーの画面になったまま、ゲーム画面に戻らなくなって、そのままになります。
画面が固まったままではなくて、シーンが切り替わらずにそのままになっているようです。
ここら辺もデバッグする必要があります。

5 ミスをした時の残機減少


7 ゲームタイトル、ゲームオーバー、リプレイ画面の設定


とりあえず、ゲームオーバーを設定しました。
規定の数のミスをすると、ゲームオーバー、リトライの表示をします。
ゲームタイトルは、後日にします。


次回は、

6 複数面、シーンの設定


 1面をクリアしたときの次の面に移動できるようにします。





次の作業です。

8ランキング表示、
9 サウンド作成、設定
11 ボーナスアイテムの出現
12 ボーナスアイテムの取得による各種変更、

では、次回です。
posted by goodman at 15:10| Comment(0) | アイフォンiPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2012年08月10日

ストップモーションキャプチャの映画のメイキングParaNorman 見た

ストップモーションキャプチャの映画のメイキングParaNorman 見た

ParaNorman

ウォレスとグルミットのアードマンが制作しているのかと思ったら違いました。
ストップモーションキャプチャの映画って、手間がかかると思いますが、実際のところ、CGと制作費は変わらないのでしょうか?
3DCGでも、キャラクターの模型を作ってそれをモデリングしてアニメーションして、編集して映画になります。
ストップモーションアニメも模型を作って、動かして、編集して映画になります。
映画の設定が、広大な宇宙とか、光線がでたりとか、変形したりとかしなければ、ストップモーションアニメでも制作期間とか、制作費は同じくらいなのでしょうか。

ノーマンのメイキングを見ると、
こんだけ、手間がかかっているのかとびっくりします。




かなり手間がかかっています。
こんなに手間がかかっているとは。撮影をしている人は気が狂いそうにならないのか不思議です。
パペット人形の制作に従事している女性の数が多いように見て取れるのは、女性の方が、やっぱり、地道な作業に向いているからでしょうか。

話は変わって、
今作っているアイフォンアプリのアニメーション、アクションの設定で悩んでいます。

A点からB点に移動して、その後別のアクションをします。そして、また、A点から、、、とリピートします。
このリピートの間に、タップされると、他のアクション、アニメーションに切り替えたいと考えています。
たったこれだけのことなのに、上手くいきません。
一つのオブジェクトをタップして、このタップしたものに関して他のアクションを追加したいのに、タップしていないオブジェクトも一緒に他のアクションアニメーションをし始めます。

手間がかかる方法をとらないとならないようです。
面倒だと思っていました。

そして、ストップモーションアニメのメイキングを見たら、今作っているアクション、アニメーション設定なんて、苦にならない範囲です。


画像[かき氷シロップ]かき氷の氷蜜とハンディーシャワーのセット
かき氷やフラッペでは、氷の上に多種多様の蜜やフルーツを盛り合わせるレシピが存在します。中でもスタンダードな組み合わせとして。「かき氷の蜜(シロップ)」と「氷」という組み合わせがシンプルで一番おいしいです。

画像クリアリーズ メープルシロップNo.1 ライト 250ml
メープルシロップの中で最高級のグレードのものです。「一番絞り」に相当する新鮮な樹液を使ったもので、あっさりまろやかな味は絶品!!250ml(瓶) 原産国:カナダ

画像【38%OFF送料込】小麦胚芽入りパンケーキミックスとカナダ直輸入ラクレーメープルシロップの2000円ポッキリすっきりコラボセット女性にうれしい小麦胚芽入りパンケーキミックス(約21枚分)に、カナダ・ケベックから直輸入したばかりのメープルシロップ125mlがついて、更に沖縄・離島以外の地域への送料込で、2,000円ポッキリ!
posted by goodman at 10:47| Comment(0) | 映画の感想 | このブログの読者になる | 更新情報をチェックする

2012年08月05日

その1、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月2日から5日までの分

その1、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月2日から5日までの分

前回レッスンノートをもとにcocos2Dココスバージョン1.0からバージョン2.0への移植と誤植を修正しながらiphoneアプリ開発をしようと途中まで頑張りましたが挫折しました。
コメントしてくださったり、アドバイスの書き込みありがとうございました。もうちょっとやってみましたが、ダメでした。

Ver2.0のテンプレートからソースコードをコピペしてVer2.0に移植しながらアプリを作ってみようと思いましたが、動くか動かないかで悩んで、飽きてしまいそうなので、もっと自分に合った簡単なコードからアイフォンアプリゲームを作ってみようと思います。


でもレッスンノートは参考書として活用していきたいと思います。クラスのデザインコーディングは非常に参考になりました。たぶん、再利用とか複数人数での開発には必要なデザインだと思います。でも私は一人なので、あまり再利用を考えてもそのための設計を考えるだけで時間が経過してしまって何も進まないことがおおいので、とりあえずは、どんどんコーディングをしてうごかして、アイフォンアプリのゲーム開発を進めてみたいと思います。


今回は、もっとシンプルで簡単なiphoneアプリ開発はします。 youtubeの動画のコーディングチュートリアルを参考にしながら、 iphoneアプリを開発しようと思います。ユーチューブが見ることができる時代になってほんとに良かったです。

まず簡単アイフォンアプリゲームの開発項目を考えてみました。
まず、スプライト画像がアニメーションして、ユーザがタップして何かの変化、イベントが発生するところまでを作ってみます。
難しいところや細かい装飾性に伴うアニメーション(エフェクトとかディゾルブとか爆発とかポイントアップとか)は、余力があったときや何か書籍に記載されているのを発見したら入れてみます。



<開発項目リスト目標>



1、画像の移動アニメーション
2 タップによる画像の消去または画像の変更
3 複数スプライト設定(六匹ほどランダム表示)
4 score設定、タップでポイントアップ加算
5 ミスをした時の残機減少
6 複数面、シーンの設定
7 ゲームタイトル、ゲームオーバー、リプレイ画面の設定
8ランキング表示、
9 サウンド作成、設定
10 時間制限設定、カウントダウン、
11 ボーナスアイテムの出現
12 ボーナスアイテムの取得による各種変更、
13 ゲーム開発用確認デバッグのための開発
14その他



いまのところ、一人で開発なので、シンプルでわかりにくいけど、とりあえず動くアプリゲームが目標です。
そのため、グローバル変数のような変数だらけで、極端に長いコードとなるでしょう。
それでもまず、動かしつつ理解しつつアプリを作り上げていくことを第一にします。
動かせないとさっぱりおもしろくもありません。理解も進みません。という解釈で進めていきます。

クラスを複数に分けたり、総合的に管理したり、効率よくアプリを作成するのは二の次にします。
たぶん、統合的で効率の良い方法を覚えているところから、他のことを忘れていって、アプリすら作らなくなるから。
この開発日誌は、アプリ開発が飽きて1年後に、また作りたくなったときに、この日誌を見ると思い出すことを目的にしています。



<進捗状況>

1、画像の移動アニメーション


複数のスプライトにて、左から右へ、下から上へのループアニメーションを設定しました。
A点からB点への単純移動アニメーションです。

 構成は、単に、xかy座標の数値をカウントアップして、ある一定の値に達したら、元の位置にします。
 スプライト画像のposition.xに100*dtを加算します。これは、1秒間に100ピクセル動くというものです。
つまり、現在のx座業が10の位置にあると、アプリを実行させて、1秒後に110ピクセルの位置に移動します。
2秒後には、210ピクセルの位置に移動します。シンプルですね。
 でもこのままでは、画面から消えてしまいます。でもプログラムのメモリにはずっと残ってアプリが起動している間はずっとピクセル加算されて移動したままです。
 それでは困るのは、ある値を超えたら、ここでは画面サイズ480ピクセルを越えたところで、新しい座標を与えて、画面に表示させるようにします。
メソッドの記述
120804-0001.png

他のメソッドの記述
120804-0002.png

 

2: タップによる画像の消去または画像の変更


レッスンノートに記載のonEnter,onExit,ccTouch関連関数を、記述すると、1で動いていたアニメーションが動かない現象が発生。スプライト画像は表示されているのにアニメーションとして動きません。

グーグルでいろいろと調べて、あきらめかけたときに、あるサイトで
[super onEnter];
[super onExit];
の記述をみつけました。
そこで、この記述を試してみました。動きました。
レッスンノートには記載されていませんでしたが、インプレスジャパンのココス本には、
[super onEnter];
[super onExit];
が記載されていないと正常に動作しない恐れがあると記載されていました。


複数の記載を参考にしながら進めていきます。
まずは、スプライトをタップすると、画面から消すようにします。
その後、他の画像にスプライトを変更できるか、試してみます。
 スプライトをタップしたら、他の画像にしました。うまくいきました。
120804-0003.png


次に、スプライトを消します。これは、spriteをnilにするだけでは消えません。
そこで、
removeFromParentAndCleanup:YES
を設定します。
これで、画面上に表示されなくなります。




3: 複数スプライト設定(六匹ほどランダム表示)




120805-0001.png


cocos2dの使い方【実践】A 〜スプライトで簡単なゲーム 1/2〜Add Starこの記事を参考にさせてもらいました。(報告書き込み未だです。8月4日現在)

次は、6匹というか複数スプライト画像を表示させて、タップすると消えるようにします。
できれば、表示、タップして消して、再度表示して、ループして、表示、消すができるように
したいと思います。

ここで、ちょっと画像を作成しておきましょう。著作権違反にならないように、自作しましょう。Pixelmatorを買いました。
本当はフォトショップが欲しかったのですが、画像作成に6万円も払えません。
でもフォトショップエレメントは1万円くらいなので買ってもいいかなと思ってます。

 まず、作成手順をリストにしてみます。
 1.スプライトを設定して複数のスプライト画像を表示させる
 2.複数のスプライトをそれぞれ個別にランダムにアニーションさせる。
 3.タップすると消える。全部消すと、また、出現する。
 4.2、3を繰り返すゲーム。

 関連するリンク
cocos2d for iPhone v0.99.0-final Release Notes
runAction:[CCRepeatForever について、スクロールの半ばくらいなので、ページ内検索した方がよいです。


ここまでの動作の動きです。音楽は、ユーチューブで編集しました。


★1は、タップすると、別の画像になって、回転します。
★2は、画面から消します。
他は、画面から別の座標へ飛ばしてます。メモリ上は削除してない状態です。
動画キャプチャのフレームレートは8フレームです。アプリの方は60フレームです。

いろいろと、パラメータとなる値をいじったり、スプライト画像を加えたり消したりしているので、当初の説明と変わっているところがあります。





次回はここからです。

4 score設定、タップでポイントアップ加算


 タップで、消せたら、ポイントを表示して加算します。
 まず、作成手順をリストにしました。
 1.タップして、消えるときに、ポイントを加算します。
 2.スコアーとして表示します。
 3.連続タップできるとボーナス加算をします。


5 ミスをした時の残機減少


 ゲームとして、ユーザの制限とペナルティを考えます。

6 複数面、シーンの設定


 1面をクリアしたときの次の面に移動できるようにします。


7 ゲームタイトル、ゲームオーバー、リプレイ画面の設定


 
posted by goodman at 19:24| Comment(0) | アイフォンiPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2012年08月04日

アイフォンアプリ開発メモココスcocos2d ver2.0メモ 画面の向き,物理シミューレションをするならBox2D

アイフォンアプリ開発メモココスcocos2d ver2.0メモ 画面の向き,物理シミューレションをするならBox2D
 

【cocos2d】画面の向きを変更する | LAGRANGE BLOG | iPhoneアプリ,iPhone,Androidゲーム攻略掲載web

たとえば
縦向きでアイフォンアプリを作りたいときは

//縦向き
メソッド
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
について
return ( UIInterfaceOrientationIsPortrait( interfaceOrientation ) );
とします。
LandscapeとPortraitです。



・物理士ミューレションをするならBox2D
Intro to Box2D with Cocos2D Tutorial: Bouncing Balls | Ray Wenderlich


How To Create A Breakout Game with Box2D and Cocos2D Tutorial: Part 1 | Ray Wenderlich
posted by goodman at 11:24| Comment(0) | アイフォンiPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

2012年08月01日

その6一旦休止 書籍cocos2d for iPhone レッスンノート (加藤寛人、佐藤伸吾著) の誤植の修正とcocos2d v1.0からv2.0への移行の道のり、

その6 書籍cocos2d for iPhone レッスンノート (加藤寛人、佐藤伸吾著) の誤植の修正とcocos2d v1.0からv2.0への移行の道のり、アイフォンアプリ開発記録日誌 7月2012年

今回で、いったん、休止です。わたしの知識が無いので先に進めませんでした。

注:

書籍cocos2d for iPhone レッスンノート (加藤寛人、佐藤伸吾著) の誤植の修正といってますが、単に、書籍に記載されているコードをXcode4.4でCocos2D Ver2.0に対応させて記述しています。MacOS MountainLionです。
(本書は、Xcode4.0でCOSOS2D Ver1.0に基づいて記載されているので、COSOS2DVer2.0で動かないことがあっても当然であり、著者、出版社に責任はありません。誤植や不備はどの本にもあることです。)







<現在はレッスン4の隕石アステロイドAsteroidゲームです。>

現在の動作していない点

1.隕石が降ってこない

2.砲台が動かない

3.ミサイル弾が発射されない

4.あたり判定、他の動作が確認できない。



・動作している点

1.砲台、地面、パーティクルが表示される。パーティクルはアニメーションされている。

ほかなし。


http://sarudeki.jp/hchibee/2012/05/27/%e8%aa%a4%e6%a4%8d%e3%83%9e%e3%82%b8%e3%81%8b%e3%82%93%e3%81%b9%e3%82%93/#comment-10
誤植マジかんべん | おっさんフリーター(36)がアプリ作る
>このブログにヒントがありそうです。参考にさせてもらいます



そして、結果は、どうか。

上記サイトに「誤植マジかんべん」の記事の通りですね。
私もソースコードを読みましたが、この記事の指摘は、あまり意識してませんでした。

だめでした。

そこで、別の手です。
というか、ほとんど、書籍を参考にしてアプリを作るというのはあきらめていて、
ダウンロードしたソースをCocos2DV2.0に対応できるかを調べてみます。



新規プロジェクトを作成して、Helloworld.m,.hを削除して、
ダウンロードしたファイルをドラッグします。
そして、必要な箇所(今は略)を変更して、コンパイルします。


Undefined symbols for architecture i386: "_OBJC_CLASS_$_GameScene", referenced from objc-class-ref in AppDelegate.o



というエラーが表示されます。
これは、単に、コンパイルをするリストにGameScene.mが載っていないことを示しています。
リストに登録することでこのエラーはなくなります。
これは、XCODEのパンパイルのリストに追加します。


そして、画像がないとか言うエラーを再度リソースフォルダに登録して、実行させると



2012-07-31 21:23:12.896 AsteroidTwo[3709:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCScheduler: You can't re-schedule an 'update' selector'. Unschedule it first'
*** First throw call stack:

今度は、CCSchedulerのえらーです。

もしかすると、Sceneの記載がまずいのかもしれません。





ここから先は、もう少し知識をつけてから作業をしたい思います。
そのため、しばらく書籍cocos2d for iPhone レッスンノートの移植と誤植と記載不備の修正は、休止です。









<その他の参考サイト>

アプリを作成するために、プログラムを組んでますが、いつになっても、正確で正式な名称などを覚えていません。

 クラスとメソッドくらいはわかりますが、+、ーの違いのクラスメソッド、インスタンスメソッドなど細分化されそうな名称は、なんとなくのひとくくりの名称で覚えています。

これが、あとで、グーグルで検索しようとするときに、上手く検索できない原因になります。

http://selection9.blogspot.jp/2011/02/objective-c.html
クラスメソッドとインスタンスメソッド

http://wisdom.sakura.ne.jp/programming/objc/objc11.html
クラスメソッド



posted by goodman at 17:53| Comment(3) | アイフォンiPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。