SakuraCrowd’s blog

ゲーム製作を中心としたパソコン関係のブログです。気軽にコメントしてください。

SakuraCrowd's BlogSpot にお引越しをしつつあります。
マッハこうもり ver1.1
マッハこうもり ver1.1
BLK2048
BLK2048
CandyMaze
CandyMaze
くの一宅配便
くの一宅配便
団子大砲 ver1.1
団子大砲 ver1.1

プチコン3号 関連記事のリスト
作品集の公開キーは【43K534A3】です。2015/03/04にアップロード。プチコン 3.1.0 で動作確認済みです。
ニンドリ公式ライブラリの公開キー【VK3KN3DM】から、同じ作品集をダウンロードできます。
マッハこうもり(MACH_BAT1_1), BLK2048, CandyMaze, くの一宅配便(9_1DELI)をプレイすることができます。

CandyMazeプチコン3号 - プチコン大喜利のアイディア賞にノミネートされました!
日経ソフトウェア2015年4月号「くの一宅配便」が掲載されました!専用の公開キーは【7474X33J】です。

Unity
団子大砲 ver1.1を公開しました。時間を表示し、ツイートとリセット機能を追加しました。
あほげー 第16回作品にエントリーしました。59作品中36位のあほさらしいです。エントリーしたver1.0はこちらです。

JSON のオブジェクトを ID でリンクする(5)

JSON のオブジェクトを ID でリンクする(4) - SakuraCrowd’s blog の続きです。

jsonId を利用しようとしていた仕様が変わってしまい、必要なくなったのでいったん保留します。

とはいっても、 {"$ref":"id1"} などの ID から、その ID を持つオブジェクトの参照への変換、逆変換の簡単なテストをクリアする実装もできたので、記念として gist にしました。長いので最後にはっときます。

 

jsonId の実装について

gist のコメントに書いてありますが、循環参照は jsonId の置換では問題にならないのでエラー検出はしないことにしました。

JSONPath でルートの "$" のときに jsonPath.eval の第一引数を対象にしたかったのですが、空の配列が返されてしまっていたので、その部分だけ条件文で特別に処理しました。

"$[0]" などはルート配列の1番目の要素の参照を取得できるので、 jsonPath.eval(...)[0]を使っています。

反省点

jsonId を使わない仕様をなぜ最初に気づけなかったか。

それは、なるべく作成する機能に汎用性を持たせたいという悪いくせがでたためだと思います。

tmx のプロパティの編集がやりづらいので、他の json ファイルに細かい設定を書いてそれを参照させようというのがきっかけでした。

しかし、実際に自分が必要とする設定は tmx のプロパティに CSV などで4つくらいのパラメータを書くだけですむものでした。

それがなぜか、もっと複雑なものも簡単に設定したいというあいまいな仕様になってしまいました。

実際に使うデータを処理できるだけで十分だということを念頭において仕様を考えるようにしたいです。

 

cocos2d-js-3.0-rc0 

が使えるようになりました(∩´∀`)∩ワーイ

setup.py をいちいち管理者権限で呼び出すのが面倒なのでバッチファイルを作りました。

2.2 のころと違って html を起動するだけというわけではなく、 cocos コマンドで実行するのが微妙に面倒ですが、ノードの親子関係に依存しないで奥行きを設定できたりするのが便利です。

project.json の module に extensions を追加しないと使えないのがわからず苦戦しましたが、ScrollView で簡単にスクロールできるようになってよかったです。

 

jsonId の実装とテストケース