Tips : cocos2d-JS 環境を設定する(Windows 7)

個人的にProcessingはなにかと便利で、ちょっと暇な時にお絵かきしたりしていますが、画像の扱いとか動画や音なんかの扱いがちょっと不便だったりして、プリミティブな表現になりがちでした。

またクロスプラットフォームのサポートがちょっと微妙で、Java文法で書いてProcessing.jsで動かすのも少々気持ち悪いし、Java系のライブラリ使った作品はそのまま持って行けなかったり、AndroidもLiveWallpaperできなかったり、そのままではDaydreamできなかったりするので、新しいクリエイティブコーディングの環境を導入しようと思ってcocos2d-JSを設定してみました。

ゲームエンジンには興味があって、ゲームを作るというよりはその表現力を使ったアプリケーションを制作するツールとしてとらえています。なので、うまく使えるようになりたいものです。。。ちなみにcocos-2d-xはこれまでノータッチです。

cocos2d-JSのインストール

今回はcocos2d-JSのvresion 3.0 finalがリリースされたので、そちらをインストールします。 こちらの記事を参考にさせていただきましたので、詳細はこちらをご覧ください。

まず公式サイトからcocos2d-JS-v3.0をダウンロードして、適当なディレクトリに回答します。 ここではC:\home以下に展開します。

あとは参考サイトにあるとおりです。だいぶ端折りましたが、ここでは個人的に躓いた実行時エラーについてメモしておきます。

「アクセス許可で禁じられた方法でソケットにアクセスしようとしました。」

サンプルアプリを実行して、Webブラウザで確認しようとすると、こういうエラーがでることがあります。

$ cocos run -p web
Running command: compile
Building mode: debug
Running command: deploy
Deploying mode: debug
Running command: run
starting application
Start server error (10013): アクセス許可で禁じられた方法でソケットにアクセスしようとしました。

環境依存なんですが、これはcocos2d-JSがデフォルトで利用しているポート8000番が既に利用されていると起こります。(参考

なので、対策としては以下のどちらかが必要です。

  • 違うポートで実行する
  • 8000番を使っているアプリをアンインストールする、もしくは設定を変える

違うポートで実行するのは簡単で、--portオプションを利用すればOKです。

$ cocos run -p web --port 8888

毎回つけるのが面倒で、犯人捜しをする場合は8000番を使っているプロセスを探します。

コマンドプロンプトを管理者権限で起動(右クリックでコンテキストメニューから「管理者権限で実行」を選択)し、netstatを実行します。 プロセスの持ち主を出力するには-bオプションが必要です。(管理者権限)

$ netstat -anob

すると、現在アクティブな接続一覧が出ます。自分の環境だと、8000番は下記でした。

TCP 0.0.0.0:8000  0.0.0.0:0  LISTENING  4
所有者情報を取得できません。

プロセスの所有者が出てきません。PIDが4なのでSystemのようです。

ちょっとググるこんな記事を発見しました。 どうやらWindows HTTP APIを利用している奴がいるようです。調べます。

$ netsh http show servicestate

すると、

HTTP://+:8000/VAIOCARE/VCAGENT/XXXX

という出力が大量に…。 自分の環境はVAIO Zなのですが、どうやらVaio Careが8000番を使っているようです。VAIO Careぇ…

まとめ

というわけで、結局自分はポートを指定して別ポートで実行していますorz もし似たような問題で困っている人は、参考にしていただければと思います。(ほぼインストールの記事書いてないですが…)