一人もくもく会 α verでサービス開始しました。

cocos2d-jsでccui.Buttonを使う

cocos2d-jsでccui.Buttonを使った。
これは何かというと、Cocos Studioで配置したボタンのために使われるクラス。
それをそのまま使ってしまう方法。

なぜそのような方法を使うかというと、
通常ボタンを使うためにはMenuItemを使うのだが、
タップを有効化することを考えるとScrollViewに入れる際に
どういった処理を書けばいいかわからない(調べるのも面倒)。
そのため、addTouchEventListenerでできてしまう
このクラスを使うと非常にプログラムが簡単になる。

var button = ccui.Button.create();
button.setTouchEnabled(true);
button.setScale9Enabled(true);
button.loadTextures('image.png', null, null);
button.setSize(cc.size(160, 150));
button.addTouchEventListener(this.onClick, this);
this.addChild(button);

setScale9EnabledとsetSizeでScale9も勝手にいい感じにしてくれた。

そもそも、本来であればCocos studioで作ったUIをそのまま使えばいいのだが、
なぜ今回ボタンのクラスを直接使おうかと思ったかというと
ボタンのみのUIだったのだがそれだけでも数十個画面上に追加すると
UIの作成の合計時間がかなり増えて画面が一瞬固まったようになってしまった。
(計測したら完全にUI作成の部分だけで時間がかかっていた)

大量に同じUIを配置するところはjsonをそのまま使わず
プログラムで書いた方が良さげ。
(ただし、時間は短縮できるが、やはりそれなりに時間はかかる)