スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CocosBuilderのちょっとしたこと3

CocosBuilderのタイムライン上でCallbacksを設定したのに関数が呼ばれなかったのでメモ。

理由は超単純。

iOSシミュレータ上のCocosPlayerをタスク上からも完全停止し、再起動。

これで解決。

どうもjsの変数が残ってる気がします。

例えば、

var testVar = testVar || {
 getFlag:function(idx) {
  var flg = [0,0,0,0];
  return flg[idx];
 }
};

とか作って、変数部分を

var flg = [1,0,0,0];

にしても、変わらないのです。
もちろん、1行目を

var testVar = {

にすれば変わります。

トライ・アンド・エラーを繰り返している時はついつい忘れがちですが、
希望通りに動かないときは、アプリ側、ツール側共に再起動してみましょう!

iOSの開発にも少し役立つAutomator

開発メモ。

Macに搭載されているAutomatorはすごく便利です。
これは、Windowsで言うところのバッチをGUIにして超便利にしたもので、標準搭載されています。

言わばアプリケーションのマクロ。

様々なアクションを組み合わせたものを、利用シーンに合わせて出力できます。例えば、バッチ自体をアプリケーションとして用意したり、フォルダに入った時に作動させたり、右クリックメニューに入れたり。僕がよく使うのは、「サービス」と呼ばれる右クリックメニューに追加するものです。

アクションの中には、

PDF、インターネット、カレンダー、システム(ネットワークディスクを作ったりユーザー追加したり)、テキスト、開発(CVSのコミットやxcodeのビルド等)、ファイル制御、フォント、iTunes、ムービー、メール、ユーティリティ(クリップボード制御やシェルを実行したり、簡易的な変数を使ったり)、画像、アドレス帳

辺りが最初から入ってます。OS買ったら最初から入ってる標準アプリは制御できるよってことですね。

iOSの開発でも、ちょっとしたところで便利なので、少しご紹介。

続きを読む»

CocosBuilderでiOS独自の関数を呼び出したい

これは、実は僕もちゃんとした方法を使ってないのかもしれませんが、それでも一つの方法ということで。ネット上に情報が少ないですし。

まず、通常と同様にxcodeでcocos2d for javascriptのプロジェクトを作っているものとします。(1)

んで、普通にObjective-CでStoreKit周りの処理を描きます。(2)

最後に、他のcocos2d等と同じようにjsbindingsに入れ込みます。(3)

今回はこの内容をざっくりと。

続きを読む»

CocosBuilderのちょっとしたこと2

CocosBuilderで質問が来ましたので2点ほど。

■タイムラインにあるSE用とCallback用のラインはどうやって使うの?

新規で入った人はどうやって使うんだろう?メニューにも無いし・・・ということで悩んだそうです。

タイムラインは基本的に、optionキー押しながらクリックです!

これで、SEもcallbacksもキーが打てます。キーを打ったあとは、ダブルクリックでどのサウンドを再生するか設定したり、どの関数を実行するか設定できます。

アニメーションはメニューから選んだりショートカットキーを押す方法もありますが、何だかんだでoption押しながらキーを設定したほうが楽です。

■スコアとかの保存や読み込みはどうしたら良いの?
Javascriptのほうで、

sys.localStorage

というのが組み込まれてますので、これを使えば簡単です。

使える関数は3つ。

getItem 読み込み。
removeItem削除。
setItem保存。
です。

以下、シンプルな例です。


var score = sys.localStorage.getItem("score"); // スコアを読み込み
score += 1000;
sys.localStorage.setItem("score", score); // スコアを保存

"score"という部分がデータを保存するキーの文字列になります。NSUserDefaultと同じように保存データをキーで管理してるんですね。

内部的にはsqliteで、jsb.sqliteというファイルが使われます。


iOS固有の購入処理等の組み込み方も質問がありましたが、ちょっと長くなるので後日!

CocosBuilderのちょっとしたこと

開発メモ。

CocosBuilderで開発することは良くありますが、
iOSとAndroidは動いても、HTML5で以下のエラーが出てしまうことがありました。

Uncaught TypeError: Cannot call method 'addEventListener' of null
Uncaught TypeError: undefined is not a function

まぁ別にHTMLで動かなくても問題ないのですが、
一応原因を。

CocosBuilderはその仕様上、jsファイルの読み込み順がファイル名順です。その為、「_global.js」みたいなファイルを作って、そこでグローバルな変数を定義したりします。ちょっとしたラップとして、以下のような記述をしていました。

var _global = this;
var _audioEngine = cc.AudioEngine.getInstance();
var _director = cc.Director.getInstance();

しかし、最後のcc.Director.getInstance();は、HTML5だと上記エラーになります。
解決方法は単純に、この時点で作られてないってだけなので、

var _director;
var TitleScene = function(){
 _director = cc.Director.getInstance();
};

のように、ちょっとタイミングをずらせばOKです。見た目汚いですが。
プロフィール

エロぺんぎん

管理人:エロぺんぎん
不純な動機でプログラマーになった男、エロぺんぎんです。ブラザー達を猛烈に応援したい気持ちと、自分もプログラマーとして成長したい思いで、当ブログを立ち上げました。
エロぺん動画を運営しております。

検索フォーム
Twitter
最新記事
最新コメント
カテゴリ
リンク
RSSリンク
エロぺん動画で人気の動画
人気の記事