スポンサーサイト

2012.09.14 Friday
0

    一定期間更新がないため広告を表示しています

    |-|-|-|-|-|by スポンサードリンク

    cocos2d(其の6) シーンを綺麗に切り替えたい1

    2012.02.04 Saturday
    0
      みなさんお久しぶりだ。
      決してブログをサボっていたわけじゃないんだ!
      さぁ始めよう!cocos2dだ!
      久しぶりすぎてcocos2dがわからない人は、以前のブログを見て欲しい。
      ダニエルからのお願いだ


      明日は休日だってのに、まめすけは浮かない顔をしている。
      昨日までは、新アプリ「傾けろ」に夢中になっていたのに。
      ひょっとしてタイムスコアで僕に負けているのが嫌なのだろうか?
      そういえば昨日、「プログラマーにスコアで勝てるわけないだろう」
      とつぶやいていたのを思い出した。  


      【シーン遷移】
      「美しいものも愚かな行いによって、全ては台無しになってしまう。
      僕はそんな事はゴメンだね。そんな事はロンドンでもゴメンだ」
      ・・・。
      何がロンドンなのかさっぱりわからない。
      が・・彼が言いたいことはわかったよ。
      つまり、シーン遷移を綺麗にしろ!と言いたいのだ。
      綺麗の定義は非常に難しいものだが。
      ここでダニエルが取る行動はひとつだけだ!
      「OK!綺麗にするよ!」
      そうしなければ、僕は”ロンドン”という何らかしらの罰を受けることになるだろう。
      まめすけはそんな男前な奴なんだ。

      まず今日はシーンについて説明しようと思う。
      cocos2dは、画面をシーンという概念で扱っている。
      すべてのゲームの画面はシーンとシーンの繋がりという事になる。
      少しわかりにくいかもしれない。
      OK!面白革命アプリを例をあげよう

      【傾けろの場合のシーン】
       ・ロゴシーン
       ・タイトルシーン
       ・ランキングシーン
       ・ゲームシーン
       ・面白革命アプリ紹介シーン

      以上、5つのシーンから成り立っている。
      シーンの中にはレイヤ、スプライトという概念が存在するが
      それは又、別の機会に紹介しよう。

      【シーンのつながり】
      ゲームを起動する
         ↓
      ロゴシーン
         ↓
      タイトルシーン
         ↕      ↕         ↕
      ゲームシーン  ランキングシーン  面白革命アプリ紹介シーン
      (↕は行き来可能な事を示す)


      ゲームをシーンという単位で区切ることによって。
      とっても扱いやすくなるんだ。

      cocos2dでは、どんなゲームを作るときでも、
      まず始めにシーンを洗い出すことから始めるのを強くお薦めする。
      そうすることで、自然とデータの整理もしやすくなるはずだ。
      データの整理を侮ってはいけない。本当にやっかいな問題なんだ。
      (全てのデータがひとつのフォルダでドーンって渡されて泣きそうになる
       そんな思いはしたくないだろう?僕も同じ気持ちだ)


      まめすけの事を思うと安心して眠れないが
      とりあえず今日はここまでだ。

      iphonecomments(4)trackbacks(0)|-|-|by 大阪ダニエル

      cocos2d(其の5) 綺麗な画像はお好きですか?の続き

      2012.01.24 Tuesday
      0
        さぁ今週の始まりだ。
        まぁもう夜中だがそんな些細な事はどうでもいい。
        なぜならcocos2dが始まるからだ。
        cocos2dが何かわからない人は、先週のブログを見て欲しい。
        ダニエルからのお願いだ。


        朝から何か言いたげな顔をしている。
        OK!僕はいつだって君からの要求を待っている。
        愛の告白だってOKだ。今日はいったい何があったんだい?
        と軽口を叩ける雰囲気ではない。


        【retina対応を簡単に】
        「僕は既に画像をたくさん作っているんだ。君は焼いたホットアップルパイをホットメロンパイに変えてくれと言われたら、どんな気分になると思う?」
        あまりに心を乱しすぎて、うまく言葉にできていないようだ。
        ホットメロンパイとはなんなのだろう・・・?
        OK!つまり、こういいたいらしい。
        "xxx@2x"→"xxx-hd"の変更なんてやってられるか!と。
        ここで要注意だ。リネームツールを用意しようか?などと聞いたら
        僕のmacbookはミキサーで粉々にされてしまうだろう。
        まめすけはそんな男前なやつなんだ


        まめすけが画像の名前を変える気が無い以上
        前回とは違う対応方法を考えるしか無い。
        そう!賢明な読者の方はお気づきだろう。
        cocos2dの設定を変更するしか方法はないのだ。


        さすがcocos2dだ!いとも簡単にこの問題を解決する方法が見つかった!
        CCConfig.hにある。

        #define CC_RETINA_DISPLAY_FILENAME_SUFFIX @"-hd"

        これを下のように変更する、 

        #define CC_RETINA_DISPLAY_FILENAME_SUFFIX @"@2x"


        これでOKだ!
        これでiOSが振る舞うようにcocos2dもretina画像を扱ってくれるようになる。
        まめすけも大満足だ!
        これで今夜も安心して眠れそうだ。

        【次の記事へのリンク】
        iphonecomments(0)trackbacks(0)|-|-|by 大阪ダニエル

        cocos2d(其の4) 綺麗な画像はお好きですか?

        2012.01.21 Saturday
        0
          本日もcocos2dだ。
          なんだそれ?おいしいのっ?という人は、もう少し努力して欲しい。
          ダニエルからのお願いだ。

          【retinaディスプレイ対応画像】
          一体僕の何がいけなかったんだろう?
          まめすけが怖い顔をしている。
          なるほど。彼の机に僕のUSBケーブルがほんの少しはみ出している。
          そう5センチほどだがはみ出している。
          しかしそんな事と、彼の怒りは関係ないようだ。


          「綺麗な画像がみたいんだ。そうiphone4を買ってよかったと思うぐらいにね」
          なるほど。アプリに表示されている画像が汚い。彼はそういいたいのだろう。
          回りくどく言うのは彼の癖みたいなものだ。指摘しようものなら
          僕はこのブログが書けなくなってしまう事態になるだろう。
          まめすけはそんな男前な奴なんだ。


          iPhone4になってディスプレイは進化を遂げた。
          そうretinaだ!(読:レチナ)
          なんと!解像度はPhone3と比較して4倍以上だ(640*960 326ppi)
          しかも、こいつは自動で明るさを調節してくれるんだ。
          暗いところ
          明るいところ
          どんな場所にいても最適な明るさにしてくれる。
          もう僕達の目は疲れることから開放されたんだ。

          しかし、よく考えて欲しい。
          ディスプレイの解像度が変更されたということは。
          そうそのとおり。表示する画像の解像度も変更されるんだ。
          つまり、iPhone3GS以前用の画像とretinaディスプレイ用画像の2枚必要になる。

          まずcocos2dは一旦おいて、iOSでretina対応方法の説明をしよう。

          [iosの場合]
           mamesuke.png      (今までの画像ファイル) 320*480
           mamesuke@2x.png   (retina対応)  640*960

          たったこれだけでOKだ。
          プログラムからアクセスする時は、従来通りファイル名だけでいい。"@2x"は不要だ。
          とはいえ、画像の数が2倍に増えるわけだから、容量はかなり増える。
          3G回線の制限、20MBを気にしている人は要注意だ。

          これがcocos2dになると事情が変わってくる。
          [cocos2dの場合]
           mamesuke.png      (今までの画像ファイル) 320*480
           mamesuke-hd.png   (retina対応)  640*960


          -hdに変わるんだ。
          それともう一つ。AppDelegate.mの修正がある。
          下の部分のコメントを外してあげるんだ。

          // // Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices

          if( ! [director enableRetinaDisplay:YES] )

          // CCLOG(@"Retina Display Not supported");



          これでOKだ。
          しかしまだ問題は残っている。
          賢明なあなたはもう気づいているのだろう。
          そう、icon.pngとDefault.pngだ。
          この2つは、iOSからアクセスされる。
          つまり"-hd"ではなく"@2x"を使用するんだ。
          ここは要注意だ。


          起動画像、アイコン、アプリの画像、全てをretinaに対応することが出来た。
          素晴らしい。ビールで乾杯しようじゃないか
          これでまめすけも大満足だ。
          今夜も安心して眠れそうだ

          【次の記事へのリンク】
          iphonecomments(0)trackbacks(0)|-|-|by 大阪ダニエル

          cocos2d(其の3) ゲームの向きを決めよう

          2012.01.19 Thursday
          0
             さて、前回に引き続きcocos2dだ。
            当分cocos2dで行くと思う。興味のない人は興味を持つよう努力して欲しい。
            ダニエルからのお願いだ。


            【ゲーム画面の向き】
            まめすけが、また何かを言っているようだ。
            「iphoneを回すと画面がまわるゲームを考えたよ。早速試してくれ」
            回す方法か、「ちょっと時間が欲しい」なんて応えようものなら
            「待っている間君のiphoneを回しておくよ」なんて言われて
            壊されかねないんだ。こいつはちょっとした危機だ。
            まめすけはそんな男前な奴なんだ。


            ゲームの向きを考える上で、重要なポイントがある。
            GameConfig.hにある次の行を見て欲しい。
            これは、iOSから画面の向き変更の依頼が来た時にどう振る舞うかを決めている。

            #define kGameAutorotationNone 0

            #define kGameAutorotationCCDirector 1

            #define kGameAutorotationUIViewController 2


            まずはkGameAutorotationNone、完全無視する設定だ。
            完全に1方向に画面を固定したい時に使用する。
            おっと!こいつはipadアプリでは使っちゃだめだ。
            ipadは回転対応しろってリンゴの奴らが決めてるんだ。

            次はkGameAutorotationCCDirector、向きを変更する時に
            UiKitのアニメーションを使わない設定だ。
            パッと切り替わるようになる。その分パフォーマンスは軽い。
            自前でアニメーションを用意してやってもいいだろう。

            最後はkGameAutorotationUIViewController、だ。
            UiKitの滑らかなアニメーションを使う設定だ。
            リンゴの奴らが自負するだけあって、非常に綺麗だ。
            ただし!パフォーマンスは悪い。ゲーム中での動作は避けるべきだ。


            これらのどれを使用するかの設定は、もうすこし下に書くことになっている。


            これが第3世代以降&シュミレータで適用される設定

            #if defined(__ARM_NEON__) || TARGET_IPHONE_SIMULATOR

            #define GAME_AUTOROTATION kGameAutorotationCCDirector


            これが第2世代以前の設定

            #elif __arm__

            #define GAME_AUTOROTATION kGameAutorotationNone


            どれを選択するかはアプリケーションにあわせて決めよう。


            さて、回転する方法は決めた。
            次は、実際にどの方向の回転に対応するかを設定しよう。
            縦回転だけ対応したい!なんて要望にも応えれるようにしておかないと駄目だ。
            まめすけはそんなに甘くない。


            RootViewController.mの
            - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationを見て欲しい。


            そこの中にさっきの3つの設定別に記載するんだ。

            #if GAME_AUTOROTATION==kGameAutorotationNone

              ここに記載

            #elif GAME_AUTOROTATION==kGameAutorotationCCDirector

              ここに記載

            #elif GAME_AUTOROTATION == kGameAutorotationUIViewController

              ここに記載

            #endif // GAME_AUTOROTATION


            引数、interfaceOrientationには、iOSが向けたい画面の方向が入っている。

            左 UIInterfaceOrientationLandscapeLeft

            右 UIInterfaceOrientationLandscapeRight

            上 UIInterfaceOrientationPortrait

            下 UIInterfaceOrientationPortraitUpsideDown


            もし自分のアプリが対応できる方向ならTRUE

            対応できない方向ならFALSEを返却する。ただそれだけでOKだ。


            if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft ){

                return TRUE;

            }

            仮に左回転に対応するなら、上のように記載すればOKだ。

            いくつ回転に対応するかは好きにすればいいが、最低でも1つは対応しておくことに注意だ。

            これは、コードの注意書きにも記載されている。


            まめすけが、「ゲーム中だけ回転は無しで、オプション画面とかはクルクルしてよ」

            って言ってきてもOKだ。オプション画面に遷移する時に、上記関数の設定を変更

            してやればいいんだ。

            これでまめすけも納得するだろう。

            今夜も安心して眠れそうだ。


            【次の記事へのリンク】

            cocos2d(其の4) 綺麗な画像はお好きですか?

            【前の記事へのリンク】

            cocos2d(其の2) プロジェクト作成

            iphonecomments(0)trackbacks(0)|-|-|by 大阪ダニエル

            cocos2d(其の2) プロジェクト作成

            2012.01.19 Thursday
            0
               折角なので、理解したことはブログに書いていくよ。
              昨日に引き続き、cocos2d


              【プロジェクトの作成】
              まめすけに「新しいゲームのアイデア、ちょっと試してみてよ」って言われた時に
              「はいよ」ってひとつ返事で出来るように工夫しておかなければいけない。
              「プロジェクト作るのに時間がかかる」なんて言ったら
              「君のせいでアイデアが何処かにいっちゃったよ」なんて言われかれないw
              まめすけはそんな男前な奴なんだ。


              そんな要求にもサクッと応えてしまうのがcocos2d
              プロジェクト作成のテンプレートをインストールしておくだけで
              xcodeの新規プロジェクトの作成からcocos2Dプロジェクトが作成できる。
              実行してやれば、HelloWorldが画面に表示される。なんて素敵なやつなんだ。


              では、やってみよう。
              まずは、アプリケーション→ユーティリティー→ターミナル.appを起動する。
              cd cocos2d-iphone-xxxxxx で移動。
              これの意味が分からない人は、cdと入力した後に半角スペースを入力
              cocos2d-iphone-xxxxxxをターミナルにドラッグしてENTERでOK。


              続けて
              sudo ./install-templates.sh
              でEnterでOK。
              これでテンプレートがインストールされたよ。


              早速Xcodeで確かめてみよう。
              File→New→New Projecteを選択しよう。
              いつもの画面の左側にcocos2sが追加されているのが見えるはずだ。



              3つから選べるようだ。OKこの3つを説明しよう。
              【cocos2d】  物理エンジンを使用しないゲームを作るならこれだ。物理エンジンを知らない人も迷わずこれを選べばいい
              【cocos2d box2d】  box2dというc++で書かれた物理エンジンを使用するなら、これを選択すればいい。objective-cと多少相性が良いという理由で後述のものよりこれを選ぶ人の方がおおいらしい
              【cocos2d chipmunk】  chipmunkというcで書かれた物理エンジンを使用するなら、これを選択だ。


              とりあえず今は、【cocos2d】を選択したとしよう。
              プロジェクトの名前を適当に決めて、保存する場所を適当に決めたら完成だ。
              早速実行してみよう。(左上の再生ボタンをクリック or  command +R)


              こんな画面が表示されるはずだ。


              ハローワールドという文字とFPSが表示されている。
              標準では60FPSで設定されている。

              変更方法は、AppDelegate.mの60を好きな数字にすればいい。

              [director setAnimationInterval:1.0/60];


              これでまめすけも大満足だ
              今夜も安心して眠れそうだ
              【次の記事へのリンク】

              cocos2d(其の3) ゲームの向きを決めよう

              【前の記事へのリンク】
              iphonecomments(0)trackbacks(0)|-|-|by 大阪ダニエル

              cocos2d(其の1) はじめてみました

              2012.01.18 Wednesday
              0
                cocos2D!
                その存在自体は、2009年頃から知っていたのですが
                なんとな〜く敬遠してたんよね・


                でも、ライブラリもアプリも自分で作るのには限界があるし
                面白革命は、革命的に面白いものを作ること
                使えるものは全部使っちゃおう!
                ってわけでダウンロードしてみる。


                http://www.cocos2d-iphone.org/(公式サイト)

                現在の最新安定版は、 cocos2d-iphone-1.0.1.tar.gz です。
                これで試してみる事にしよう。


                展開してみると、2つプロジェクトがある事がわかる。
                ・cocos2d-ios.xcodeproj (iOS用)
                ・cocos2d-mac.xcodeproj (Mac用)
                迷わずcocos2d-ios.xcodeprojを開いてみる。


                お!動作確認用のサンプルアプリケーションもたくさん入ってみるみたい。
                まずは性能試してみたいので、それっぽいSpriteTestを選んでみる。
                早速コンパイル。

                xcode4.2対応してないんだろうなぁ…。
                コンパイル通すのに、時間どれぐらいかかるかなぁ…
                って警戒してたのがアホみたいに簡単に、サクっととおりました。


                早速実行してみる。。 なんだこの変なおっさんキャラww
                こういうの だ・い・す・き ですw。
                タップするとおっさんが増えていくようですね。
                (アルファ 回転 回転移動 拡縮 などさまざまなおっさんがランダムで出現します。)
                おっさん


                ご丁寧にFPSも表示されてるんで、パフォーマンスを測定してみましょう。

                【iPhone3GS】
                50人・・・ 60fps
                100人・・・60fps
                130人・・・50fps
                150人・・・45fps
                200人・・・32fps

                CoreGraphicsとは比較にならない程のパフォーマンスに大満足!
                さてiphone4ではどうでしょうか?
                (coreGraphicsで測定した時は、iphone3gs>iphone4になったので少し緊張します。)


                【iPhone4】
                50人・・・ 60fps
                100人・・・60fps
                130人・・・60fps
                150人・・・60fps
                200人・・・50fps
                250人・・・40fps

                なるほど。1.8倍程度の差が出ていますね。
                iphone4のみを用いて開発をしていると
                3GSではガクガクになってるなんて事があるのかもしれません。
                面白革命的にはなるべく下位互換を保っていきたいです。
                (ゆってるだけかもしれませんが HP作成ではjqueryにhtml5使ってるしねw)


                今日の締めはおっさんたちで!
                Viva! おっさん!



                【記事へのリンク】
                Check
                iphonecomments(0)trackbacks(0)|-|-|by 大阪ダニエル
                 

                プロフィール
                capsule+アプリ
                Mr.ナンバー

                ■Mr.ナンバー

                順番に押すだけなのに! 
                人はどうしてこんなに熱くなるのか? 

                App Store

                VSアイス

                ■VSアイス

                コーンくんは、アイスちゃんが大好き!
                コーンくんの愛の告白を手伝おう!

                App Store

                こけしの解放

                ■こけしの解放

                面白革命capsule+が本気で怖いゲームを作ってみました。 夏〜秋の夜にピッタリのゲームです。

                App Store

                指先の達人

                ■指先の達人

                あの!150万ダウンロード達成した「連打の達人」の世界観を引き継いだ新作! あのだるま家族を指先で打って打ってうちまくれ! !

                App Store

                着地せよ

                ■着地せよ

                風を読んで島にピタッと着地せよ!

                App Store

                奇数か偶数か

                ■奇数か偶数か

                奇数と偶数を区別することができますか?

                App Store

                射撃の達人

                ■射撃の達人

                射撃は得意ですか? どっちにしても撃ちましょう! そんな時代です。

                App Store

                奇跡の瞬間

                ■奇跡の瞬間

                こんなゲーム遊んだ事ありますか? 3点をタッチして奇跡を起こします!

                App Store

                とどけぇぇえ

                ■とどけぇぇえ

                棒を飲まして倒すだけのシンプルゲー!
                しかし中毒者続出

                App Store

                クシャッと

                ■クシャッと

                気持ちの良い空缶つぶし! 清水幸子さん(55歳)に注意!

                App Store

                指クエスト

                ■指クエスト

                指ひとつで大冒険!

                App Store

                幸せのかけら

                ■幸せのかけら

                ちょっとした時間に幸せ探し、はじめませんか?

                App Store

                全力階段

                ■全力階段

                最近何かに全力になりましたか? 全力で階段を駆け上がりましょう

                App Store

                瞬間あみだ

                ■瞬間あみだ

                日本独自の文化である、あみだくじが進化!

                App Store

                連打の達人

                ■テム族の叫び

                世界一かわいい彼らの叫び声を聞きたくはありませんか?

                App Store

                連打の達人

                ■連打の達人

                ただ早いだけでは、だるまにどつかれます。 
                正確に素早く連打するのです! 

                App Store

                16の瞬間

                ■16の瞬間

                16回の瞬間に全神経を捧げることができますか?

                App Store

                100のアロー

                ■100のアロー

                100の瞬間のユーザー様の声から生まれたゲーム。

                App Store

                モアイへ挑戦

                ■モアイへ挑戦

                モアイの鳴き声を聞いたことがありますか?

                App Store

                限界記憶Lv99

                ■限界記憶Lv99

                記憶力に自信はありますか?

                App Store

                銭さばき

                ■銭さばき

                あなたは50枚の小銭を何秒でさばけますか?

                App Store

                100の瞬間

                ■100の瞬間

                即座に色を判断せよ!

                ★2012年2月 全無料アプリ1位獲得!

                App Store

                回れ!

                ■回れ!

                iPhoneを回せ!リズムにノッてiphoneを回せ!

                App Store
                傾けろ!

                ■傾けろ!

                iPhoneを傾けろ!リズムにノッてiphoneを傾けろ!

                App Store
                土下座

                ■土下座

                究極の土下座アプリ!

                App Store

                なんでやねん

                ■なんでやねん

                累計50万ダウンロード!
                革新的ツッコみアプリ!

                ★2010年 エンターテインメント 無料アプリで1位獲得

                App Store
                みんなのイライラ

                ■みんなのイライラ

                イライラをぶつけてストレス解消

                人類の敵、イライラをぶちまけてスッキリ!
                コメントレスもみんな早い!

                公式サイト
                新しい記事 コメント
                アーカイブ カテゴリ
                リンク モバイル
                qrcode
                Others Others
                    

                ページの先頭へ