いちおくまんえん

最近はcocos2d-xでゲームアプリ「いちおくまんえん」の制作がメインです。 あとアニメも少々・・

CocosCodeIDEのV1.2.0で、cocos2d-xのV3.5を動かs・・・したい(´・ω・`)

昨日の日記の通り、プロジェクトを作成して取り込んで、とりあえず動かすことは出来たんですが、色々問題がありました。

ichiokumanyen.hatenablog.jp


何が問題かと言うと、いくつかあります。

  1. コード補完が効かない。
  2. C++側と両立してデバッグ出来ない。
  3. Ctrlとか⌘押しながらクリックでジャンプする場所が全然合ってない。(変数には飛べるけど、functionがどこここ?( ゚д゚)ってとこに飛ぶ)
  4. Code Hot UpdatingとかLiveCodingとかいうやつが一部ファイルにしか適用されない。


そして色々試しては見たんですが、どれも解決に至らず('A`)

一応1だけはWindowsでは何とかなったんですが、それ以外は分かりませんでした。

教えてエロい人!


1についてはcocos2d-xのV3.5のライブラリがないからっぽくWindowsでは解決しました。
Macは同じ方法で試してみたけどダメだったΣ(゚д゚lll)

とりあえずWindowsの方法

f:id:ichiokumanyen:20150416030429j:plain

not found になってますよね。

んで、このライブラリですが、本来どこにあるものなのかと言うと、
Windowsで私の環境の場合は下記にありました。(MacもAppの中のほぼ同じ場所)
C:\Users\niku\.eclipse\org.ccdt.intro.product_1.0.0.201502061431_1547678526_win32_win32_x86_64\configuration\org.eclipse.osgi\bundles\61\1\.cp\resource\cocos2dx-3.4(各Version)

f:id:ichiokumanyen:20150416031513j:plain

ここにある、「cocos2dx-3.4.rockspec」というファイルですが、LuaRocksというlua用のパッケージ管理ツール用の設定ファイルのようです。中身はまんまluaでこんな感じ。

package = "cocos2dx"
version = "3.4"
flags = { ee = true }
description = {
   summary = "Cocos2dx 3.4 Execution Environment",
   licence = "MIT"
}
api = {
   file = "api.zip"
}
documentation ={
  dir="docs"
}

ちょっとドキュメントとか見たり、他人のブログ見たりしてどういうものなのか調べてみたけど、今回のケースのようなものが見当たらない(´・ω・`)

LuaRocks で Lua のモジュールを管理する - Qiita
LuaRocksとの戦い - 来世ガチャ乱数調整日記

そもそもdocsとかくっついてないし、これデタラメなんじゃないの(;・∀・)

ちなみにこのapi.zipの中身は
cocos2d-xの中の、cocos\scripting\lua-bindings\auto\apiにあるファイルが入っています。

なので、cocos2d-xのV3.5から、このディレクトリの中身をzipに固めて、元から用意してくれたバージョンに並べて、cocos2dx-3.5を用意して再起動したらいけるんじゃないかとやってみた。


ダメだった(;´д`)


とりあえず、元からあった3.4のapi.zipをバックアップを取ってから3.5のもので上書いてみた。

3.4を取り込ませると3.5のものが反映されて、ちゃんと動いた。


・・・。


そんな対応はあかんやろ( ゚д゚ )クワッ!!

ちなみに、このライブラリの指定はプロジェクトのプロパティから

f:id:ichiokumanyen:20150416045855j:plain

Luaのビルドパスのライブラリから

f:id:ichiokumanyen:20150416050035j:plain

not foundで不要なのでRemoveで消しちゃって下さい。

その後、Add Libraryを押せば、Lua Execution Environment(実行環境?)と、ユーザーライブラリから選ばされます。

f:id:ichiokumanyen:20150416050632j:plain

元から用意してくれている正規のものを使う時はLua Execution Environmentを選択します。

f:id:ichiokumanyen:20150416050826j:plain

Configureから3.5のものを足せないか試してみましたが無理でした(´・ω・`)

なので、ユーザーライブラリを作って取り込ませます。

f:id:ichiokumanyen:20150416051118j:plain

New

f:id:ichiokumanyen:20150416051227j:plain

Configure

f:id:ichiokumanyen:20150416051256j:plain

何でもいいけど、公式に習って合わせておく

f:id:ichiokumanyen:20150416051343j:plain

空っぽのライブラリが出来上がるので、zipファイルを関連付ける。Add ZIPs

f:id:ichiokumanyen:20150416051458j:plain

どこに置いてあっても良いと思いますが、とりあえずWindowsはuser\.eclipseが作られてて、その先に公式のものが置かれてたので、一旦ここに置いた。

後はOK、Finish、OKなどで閉じていけば、ライブラリが追加される。

f:id:ichiokumanyen:20150416051926j:plain

フォーカスしたら説明が表示されて、Ctrl+クリックでリンク先に飛んでくれる。

f:id:ichiokumanyen:20150416052043j:plain

補完もしてくれる( ・`д・´)

f:id:ichiokumanyen:20150416052338j:plain
f:id:ichiokumanyen:20150416052408j:plain
f:id:ichiokumanyen:20150416052528j:plain
f:id:ichiokumanyen:20150416052552j:plain

でも、抜けてる関数が大量にあるので、今までC++で触ってた人には違和感だらけです。
抜けてるものは対応していないのかと思いきや、ちゃんと動いてたりしてよく分かりません!


とりあえず、Windowsでは何とか我慢出来るレベルには触れるので、様子を見ながら開発すすめていくとします(´・ω・`)

なんかLuaのサンプルプロジェクトが3.4からMVCの考えを取り入れたものになってて、結構ややこしい。
ほぼC++と同じ書き方だったのが、lua専用のマクロ的なものか、なんなのかよく分からない書き方になってて、これに習うべきなのか、どうなのか!

local imageFilename = GameView.IMAGE_FILENAMES[bug:getModel():getType()]
DeadBugSprite:create(imageFilename)
    :fadeOut({time = 2.0, delay = 0.5, removeSelf = true})
    :move(bug:getPosition())
    :rotate(bug:getRotation() + 120)
    :addTo(self.bugsNode_, GameView.ZORDER_DEAD_BUG)

Spawnでアニメーション作成してrunActionしたい!あとメンバ変数の最後にアンダースコアが付いててたりして気持ち悪い!なぜ最初じゃないのか・・
luaのメジャーどころのコーディング規約あるかなと調べても全然出てこない(´・ω・`)
クラス名以外全部スネークなのも見たことあるけど、サンプルではローワーキャメルでスネーク使ってない。


うーん、また明日調べるかー(;・∀・)