CocosCodeIDEのV1.2.0で、cocos2d-xのV3.5を動かs・・・したい(´・ω・`)
昨日の日記の通り、プロジェクトを作成して取り込んで、とりあえず動かすことは出来たんですが、色々問題がありました。
何が問題かと言うと、いくつかあります。
- コード補完が効かない。
- C++側と両立してデバッグ出来ない。
- Ctrlとか⌘押しながらクリックでジャンプする場所が全然合ってない。(変数には飛べるけど、functionがどこここ?( ゚д゚)ってとこに飛ぶ)
- Code Hot UpdatingとかLiveCodingとかいうやつが一部ファイルにしか適用されない。
そして色々試しては見たんですが、どれも解決に至らず('A`)
一応1だけはWindowsでは何とかなったんですが、それ以外は分かりませんでした。
教えてエロい人!
1についてはcocos2d-xのV3.5のライブラリがないからっぽくWindowsでは解決しました。
Macは同じ方法で試してみたけどダメだったΣ(゚д゚lll)
とりあえずWindowsの方法
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)
ここにある、「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のものが反映されて、ちゃんと動いた。
・・・。
そんな対応はあかんやろ( ゚д゚ )クワッ!!
ちなみに、このライブラリの指定はプロジェクトのプロパティから
Luaのビルドパスのライブラリから
not foundで不要なのでRemoveで消しちゃって下さい。
その後、Add Libraryを押せば、Lua Execution Environment(実行環境?)と、ユーザーライブラリから選ばされます。
元から用意してくれている正規のものを使う時はLua Execution Environmentを選択します。
Configureから3.5のものを足せないか試してみましたが無理でした(´・ω・`)
なので、ユーザーライブラリを作って取り込ませます。
New
Configure
何でもいいけど、公式に習って合わせておく
空っぽのライブラリが出来上がるので、zipファイルを関連付ける。Add ZIPs
どこに置いてあっても良いと思いますが、とりあえずWindowsはuser\.eclipseが作られてて、その先に公式のものが置かれてたので、一旦ここに置いた。
後はOK、Finish、OKなどで閉じていけば、ライブラリが追加される。
フォーカスしたら説明が表示されて、Ctrl+クリックでリンク先に飛んでくれる。
補完もしてくれる( ・`д・´)
でも、抜けてる関数が大量にあるので、今まで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のメジャーどころのコーディング規約あるかなと調べても全然出てこない(´・ω・`)
クラス名以外全部スネークなのも見たことあるけど、サンプルではローワーキャメルでスネーク使ってない。
うーん、また明日調べるかー(;・∀・)