Monthly Archives: 6月 2015

Cocos2d-x, JS v3.7 beta出たらしいのでまとめてみた


せっかく自分用のリファレンスを作ってた真っ最中になんすかなんすか。

All in one Cocos2d-x&JS v3.7 beta0 is released

 

とりあえず自分のメモ用にもまとめとく。

てきとーに情報を日本語訳しとくね。

(あんま考えないで流し読みするし、3D系の話よくわからんし、はしょるし、英語知らんし、たまに作者の勝手な妄想が含まれているかもしれないし、許してね!)

 

 

やぁ、Cocos2d-x&JS v3.7 betaリリースしたよ!2つのとっても大事な変更があるよ!

 

1. ファイナルバージョン出すよ、このコミュニティでお知らせするよ。でもね、英語と中国のフォーラムな。ファイナルバージョンはオールインワンのCocosとして出すよ。

 

2. Cocos2d-jsはCocos2d-xに吸収されるよ。これで開発者も迷わないね。JS使えば、Windows/WP8.1/Android/Mac/iOS/Linux and Webでリリースできるよ。スムーズに移れるようにCocos2d-x v3.7 と Cocos2d-JS v3.7出しとくわ。まぁでもこの2つは同じパッケージ共有してるよ。で、そのうち統合されるよ。

 

Cocos2d-x v3.7の特徴

 

1. 3D Physics

3D Physics進化したよ。今まで3Dはbullet ってライブラリがベースだったんだけど、Cocos 3D physics APIs できたよ、うぇーい!これがドキュメントだよ、見とけ。

 

2. 3D Navigation mesh

ナビゲーションメッシュシステムは、複雑な3D空間をAPIでカンタンにつくれるよ。トライアングルリストでメッシュ、障害物とか追加できるよ。それで、パスを辿ったり、あなたがつくったとおり、ちゃんと3D空間を動き回るよ。ドキュメントはここや。

 

3. Material system

マテリアルシステムは全ての物体のビジュアルを定義する高度なシステムだ。(いつか聴覚や物質情報も含まれるかもね)1つのシンプルなテクスチャじゃなくて、マルチパスレンダリングみたいな、それ以上の表現が可能になる。詳しくはここ見れば良いと思うよ。

 

4. All in one Cocos2d-x

Cocos2d-jsがCocos2d-xに吸収されても、C++やLuaの開発者は何も変わらない。でもJSデベロッパには、奇妙なエンジン構造に見えるだろう。(ぼくとJSデベロッパの皆さんざまぁwww)  まぁでも心配するな。アップグレードはとってもシンプルだ。プロジェクト構造は前と変わんないからね。悲しい君たち、ここ見れば幸せになれるかもしれない。

 

5. Enhanced Polygon Sprite

前のバージョンではとてもカンタンとは言えなかった、ポリゴンスプライトのAPIを改良したぜ。内部の構造が2Dスプライトになったよ。1つのスプライトから自動でポリゴンを生成してくれるAutoPolygonを使えるようになったよ。ダイレクトにスプライトを作れる、マジ簡単すぎて泣けてくるぜ、ベイビー。

今まではポリゴン情報何回も作成してたけど、キャッシュ使えるので使い回しできるよ、やったね、たえちゃん!!ポリゴンジェネレータをサポートする計画だよ。

 

6. WebView and VideoPlayer in JS (native and web)

WebView と VideoPlayerがJSにも移植されたよ。iOSもAndroidもブラウザもサポート!どうですか奥さん!WebViewTest5 と VideoPlayerTest5 見てね。(あ〜、疲れた…

 

7.  Nine Patch format support

9patch imageってのは伸縮するビットマップのことな、これテストに出まーす。Scale9Spriteテクスチャで使われるやつ。9patchファイルから直接Scale9Sprite nodeを作れるようになったよ!もっと情報が欲しいだって?Nine Patch format12と its tool 見てママのおっぱいでもしゃぶってろよ!

 

8. Android Studio support

きょう、Cocos ConsoleはAndroid Studio 1.2にたいおうしました。おわり。

 

9. Samsung Enhanced API support

Android5.0以上のサムスンの製品でクールでイカしたAPIが使えるぜ。Boost Up API, Power Saving Mode API, Dynamic FPS API, なんでもありだぜ、サムスン!サムスン好きなやつはここ見てみなよ。おっと、俺の可愛い瞳を見つめてる場合じゃねぇぜ。

 

 

まぁ、見てもらった通り、2Dエンジンを3Dエンジンに進化させたってわけだ。

でもな、これからがもっとやばいぜ!

3d Physics and Navigation Mesh with the previous Camera, 3d Sprite, 3d Particle System, 3d Light, 3d Terrain, Skybox などなどなど!!

Cocosを使えば、超!エキサイティン!!な3Dゲームがつくれんティン!!

 

え、それなんてUnityだって?(おっと誰か来たようなのでそろそろお別れの時間だ!

じゃあな!!!

 

え、まてまて、今後の進化は?って

3.7でやりすぎたんだ。疲れたよ、パトラッシュ。3.8は大したことしないぜ。

2Dモジュールと3Dモジュールちまちまいじるだけだ。

 

な、もういいだろ!これ以上遅れると嫁に殺されちまう!

あ、バグだけは報告してくれよな!

 

ほぼ自分が使わなそうなとこばっかりで泣いた

ログの表示|Cocos2d-js


ログはどんな開発、どんな言語でも必須だろう。

ちなみにWeb制作経験者とかなら、jsでおなじみのconsole.log(“hoge”) とも書ける。

一応、cocosの書き方があるので紹介しておく。

 

ログの表示

 

メモ

どっちが軽いのかとかはよくわからんので誰か教えてくだしあ。

とりあえず、Cocosやってるんだからこっち使えばいいと思う。

値を保存する方法|Cocos2d-js


Cocos2d-xとCocos2d-jsの場合はkey,value型で保存する際の方法が違うのでメモ。

 

ちなみにCocos2d-xの場合

保存する方法:

 

取得する方法


 

Cocos2d-jsの場合

Cocos2d-jsでは、cc.sys.localStorage.getItemを使用するみたい。

 

保存する方法

 

 

取得する方法

 

メモ

ちなみに初期値はnullではなく“”(空文字)みたい。

 

Androidに慣れてるならPreferenceと同じ使い方だね。

案外かんたんに保存もできてびっくり。

updateメソッドを呼び出す|Cocos2d-js


定期的に何かを処理したい場合には、updateメソッドの中に処理を書く。

これはほっといても呼ばれる訳ではなく、おまじないを書かないと呼ばれない。

ゲームとかではほぼ必須のとこなので、覚えておこう。

 

updateメソッドを呼び出す

 

メモ

updateは1フレーム(1 / 60秒)ごとに呼ばれる。

テキスト入力ボックスの作成|Cocos2d-js


どんなOSでも、文字入力は行うだろう。

文字入力エリアの背景を作成し、サイズと位置を決める。

Scale9Spriteというものを使うが、また別の機会でも。

 

テキスト入力ボックスの作成

 

メモ

もし、エラーが出た場合は、対処法: cc.EditBox is not a constructorとかcc.Scale9Sprite is not a constructorとか の記事を参考にしよう。

対処法: cc.EditBox is not a constructorとかcc.Scale9Sprite is not a constructorとか


けっこうハマったので。

 

何度もリファレンスも確認したけど、コードは間違ってない。

 

ちなみに、コードはこんな感じ。

 

これはコードが悪いんじゃんくて、modulesのインポートに問題があった。

 

犯人はproject.json

modulesが初期だと、こうなってるけど

 

正解はこれね

 

modulesにextensionsを追加しないといけない。

レイヤーを複数作成する|Cocos2d-js


レイヤーを複数定義し、それのZ座標を指定することで

奥行きを表現する。

thisでルートに追加することが多いが、違うレイヤーを基点にもできる。

 

レイヤーを複数作成する

 

メモ

ルートに追加する場合はthis.addChild()、レイヤーから相対的に追加する場合はlayer.addChile()

タッチしたときのイベント|Cocos2d-js


イベントリスナーを追加する。

その際の、タッチ開始、タッチ移動、タッチ終了時を拾う。

それぞれに処理を追加できる。ちなみにcc.log() でログの出力ができる。

 

タッチイベントの作成

 

メモ

return true; がないと落ちるので注意。

onTouchBegan、onTouchEndedは1タップで1度ずつ、onTouchMovedはタッチ座標移動時に連続して呼ばれる。

色の定義|Cocos2d-js


色の定義。

それ自体でなんかできるわけじゃないけど、1回定義しておけば、使い回せる。

今回は色を定義して、テキストの色を変えてみる。

 

色の定義

 

メモ

0〜255の間で設定する。

Alphaはオプションで、デフォルト値は255。

BGM,SE(音楽,効果音)の再生|Cocos2d-js


BGM,音楽(比較的長めのもの)、SE,効果音(単発、短めのもの)の鳴らし方。

ループするかどうかの設定。

本来はSEとかはクリックの中身とかに書いたりするだろう。

 

BGM,SEの再生

 

メモ

cocos2d-jsについて調べたわけではないが、他と同じなら、SEはレスポンス重視でwav。

BGMはファイル軽量化によりmp3が良い。使えるならoggでも良いと思う。