コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2017年7月2日 >>> 2017年7月2日
link もっと後

2017年7月2日

いまさらCocos2d-xを触ってみる その2

先日(2017年6月30日の日記参照)の続きです。Cocos2d-xがビルドできたら、開発環境のセットアップをします。といってもsetup.pyを実行して、質問に答えるだけです。

Cocos2d-x環境設定
$ cd cocos2d-x

$ ./setup.py 

Setting up cocos2d-x...
->Check environment variable COCOS_CONSOLE_ROOT
  ->Search for environment variable COCOS_CONSOLE_ROOT...
    ->COCOS_CONSOLE_ROOT not found

  -> Add COCOS_CONSOLE_ROOT environment variable...
    ->Added COCOS_CONSOLE_ROOT=/home/katsuhiro/usr/src/cocos2d-x/tools/cocos2d-console/bin
...

->Check environment variable NDK_ROOT
  ->Search for environment variable NDK_ROOT...
    ->NDK_ROOT not found

  ->Search for command ndk-build in system...
    ->Command ndk-build not found

  ->Please enter the path of NDK_ROOT (or press Enter to skip): ★★Enterを押す★★
...

->Check environment variable ANDROID_SDK_ROOT
  ->Search for environment variable ANDROID_SDK_ROOT...
    ->ANDROID_SDK_ROOT not found

  ->Search for command android in system...
    ->Command android not found

  ->Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip): ★★Enterを押す★★
...

Please execute command: "source /home/katsuhiro/.bashrc" to make added system variables take effect

最初にAndroid NDKの場所を聞かれ、次にAndroid SDKの場所を聞かれます。もしAndroid向けにビルドしないのであれば、Enterを連打して無視しても構いません。私はスマホでもゲームを動かしてみたかったのでインストールしました。

Android SDKとNDK

Android SDKのコマンドラインツールは Android Studioのダウンロードサイトの一番下にある "Get just the command line tools" にあります。Android NDKは Android NDKのダウンロードサイトにあります。

SDKとNDKはどこに配置しても良いみたいです。私は~/usr/lib/ の下に放り込んでおきました。

Android SDKとNDKのインストール
$ cd ~/usr/lib
$ unzip android-ndk-r15b-linux-x86_64.zip
...省略...
$ ln -s android-ndk-r15b android-ndk

$ cd ~/usr/lib
$ mkdir android-sdk
$ cd android-sdk
$ unzip sdk-tools-linux-3859397.zip
...省略...


$ cd ~/usr/lib
$ tree -L 2
.
├──android-ndk -> android-ndk-r15b
├──android-ndk-r15b
│   ├──CHANGELOG.md
│   ├──README.md
│   ├──build
│   ├──meta
│   ├──ndk-build
│   ├──ndk-depends
│   ├──ndk-gdb
│   ├──ndk-stack
│   ├──ndk-which
│   ├──platforms
│   ├──prebuilt
│   ├──python-packages
│   ├──shader-tools
│   ├──simpleperf
│   ├──source.properties
│   ├──sources
└──android-sdk
    └──tools

それとSDKやNDKのバージョン名が変わるたびにセットアップし直すのは面倒だったので、NDKはシンボリックリンクを張りました。手抜きです……。

Cocos2d-x環境設定、やり直し
$ cd cocos2d-x

$ ./setup.py 

Setting up cocos2d-x...
->Check environment variable COCOS_CONSOLE_ROOT
  ->Search for environment variable COCOS_CONSOLE_ROOT...
    ->COCOS_CONSOLE_ROOT is found : /home/katsuhiro/usr/src/cocos2d-x/tools/cocos2d-console/bin
...

->Check environment variable NDK_ROOT
  ->Search for environment variable NDK_ROOT...
    ->NDK_ROOT not found

  ->Search for command ndk-build in system...
    ->Command ndk-build not found

  ->Please enter the path of NDK_ROOT (or press Enter to skip): /home/katsuhiro/usr/lib/android-ndk
  -> Add NDK_ROOT environment variable...
    ->Added NDK_ROOT=/home/katsuhiro/usr/lib/android-ndk

->Check environment variable ANDROID_SDK_ROOT
  ->Search for environment variable ANDROID_SDK_ROOT...
    ->ANDROID_SDK_ROOT not found

  ->Search for command android in system...
    ->Command android not found

  ->Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip): /home/katsuhiro/usr/lib/android-sdk
  -> Add ANDROID_SDK_ROOT environment variable...
    ->Added ANDROID_SDK_ROOT=/home/katsuhiro/usr/lib/android-sdk
...

Please execute command: "source /home/katsuhiro/.bashrc" to make added system variables take effect

環境設定はうまく行ったようです。最後に出ているメッセージの言う通りsource ~/.bashrcを実行すれば、cocosというコマンドが実行できるようになっているはずです。

ゲームのプロジェクトを生成する

Cocos2d-xの開発ではcocosコマンドを使うそうです。まずはcocos newでゲームのプロジェクト(テンプレート?)を生成します。

プロジェクト名はmygame1で、パッケージ名はnet.katsuster.mygame1(-p net.katsuster.mygame1)、C++ で開発します(-l cpp)。プロジェクトをディレクトリmygameに置いてもらいます(-d mygame)。何も指定しないとMyCppGameというディレクトリ名になりますが、リネームしても別に問題はありません。

新規プロジェクトを生成
$ mkdir ~/cocos
$ cd ~/cocos

$ cocos new mygame1 -p net.katsuster.mygame1 -l cpp -d mygame
> Copy template into /home/katsuhiro/cocos/mygame/mygame1
> Copying Cocos2d-x files...
> Rename project name from 'HelloCpp' to 'mygame1'
> Replace the project name from 'HelloCpp' to 'mygame1'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'net.katsuster.mygame1'
> Replace the Mac bundle id from 'org.cocos2dx.hellocpp' to 'net.katsuster.mygame1'
> Replace the iOS bundle id from 'org.cocos2dx.hellocpp' to 'net.katsuster.mygame1'

$ ls mygame
mygame1

$ ls mygame/mygame1/
CMakeLists.txt  cocos2d              proj.ios_mac  proj.win10
Classes         proj.android         proj.linux    proj.win32
Resources       proj.android-studio  proj.tizen

ディレクトリを覗くと、訳のわからないファイルが大量に生成されていて面食らいますが、とりあえず何も気にせず、ビルド&実行してみます。

ビルド対象は先程生成したmygame1(-s mygame/mygame1)で、ターゲットはLinux向け(-p linux)です。初回のビルドはかなり時間がかかりますが、二回目以降は変更した部分だけビルドするため、非常に早いです。

新規プロジェクトをビルド、実行失敗
$ cocos compile -s mygame/mygame1/ -p linux

Building mode: debug
running: 'cmake -DCMAKE_BUILD_TYPE=Debug -DDEBUG_MODE=ON ..'

-- The C compiler identification is GNU 6.3.0 

...(初回だけかなり時間掛かります)...

[100%] Building CXX object CMakeFiles/MyGame.dir/Classes/HelloWorldScene.cpp.o
[100%] Building CXX object CMakeFiles/MyGame.dir/Classes/AppDelegate.cpp.o
[100%] Linking CXX executable bin/MyGame
[100%] Built target MyGame
Build succeed.


$ cocos run -s mygame/mygame1/ -p linux
Building mode: debug
running: 'cmake -DCMAKE_BUILD_TYPE=Debug -DDEBUG_MODE=ON ..'

...

[100%] Built target MyGame
Build succeed.
Deploying mode: debug
Starting application.
running: '/home/katsuhiro/cocos/mygame/mygame1/bin/debug/linux/MyGame'

/home/katsuhiro/cocos/mygame/mygame1/bin/debug/linux/MyGame: error while loading shared libraries: libfmod.so.6: cannot open shared object file: No such file or directory
Error running command, return code: 127.

上記ではビルドだけするため、あえてcocos compileを使いましたが、実はcocos runがビルドと実行を同時にやってくれるので、cocos compileは使う必要がありません。

それは良いとしてcocos runが失敗してしまいました。libfmod.so.6が無いとか言っています。このライブラリはcocos2d-x/external/linux-specific/fmod/prebuilt/64-bit/libfmod.soに置いてあるようなのですが、名前がちょっと違っているので、libfmod.so.6という名前のシンボリックリンクを作ってあげて、ライブラリのパスも通してあげると動きます。

新規プロジェクトを実行
$ cd ~/usr/src/cocos2d-x
$ cd external/linux-specific/fmod/prebuilt/64-bit
$ ln -s libfmod.so libfmod.so.6

$ echo 'export LD_LIBRARY_PATH=$COCOS_X_ROOT/cocos2d-x/external/linux-specific/fmod/prebuilt/64-bit' >> ~/.bashrc
$ source ~/.bashrc

$ cd ~/cocos
$ cocos run -s mygame/mygame1/ -p linux
...
Build succeed.
Deploying mode: debug
Starting application.
running: '/home/katsuhiro/cocos/mygame/mygame1/bin/debug/linux/MyGame'

Ready for GLSL
Ready for OpenGL 2.0

        gl.supports_OES_packed_depth_stencil: false
        gl.supports_OES_depth24: false
        gl.supports_OES_map_buffer: false
        gl.supports_vertex_array_object: true
        gl.renderer: Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)
        gl.version: 3.0 Mesa 13.0.6
        cocos2d.x.compiled_with_gl_state_cache: true
        cocos2d.x.version: cocos2d-x-3.15.1
        gl.supports_S3TC: true
        cocos2d.x.build_type: DEBUG
        cocos2d.x.compiled_with_profiler: false
        gl.vendor: VMware, Inc.
        gl.max_texture_units: 96
        gl.max_texture_size: 8192
        gl.supports_ATITC: false
        gl.supports_ETC1: false
        gl.supports_PVRTC: false
        gl.supports_NPOT: true
        gl.supports_BGRA8888: false
        gl.supports_discard_framebuffer: false



libpng warning: iCCP: known incorrect sRGB profile
cocos2d: QuadCommand: resizing index size from [-1] to [2560]

下記のように宇宙人のような顔が描いてある画面が出れば成功です。


Cocos2d-x Hello World

そういえば何も考えずTigerVNC上で実行していますが、難無く60fps出て驚きました。画面サイズが小さくて、動きがほとんど無いから軽いだけかも知れませんけど、便利だし問題起きるまでVNC越しで開発してみようかなあ。

ひとまずLinux向けには作り始めることができそうです。今回はここまで。

編集者:すずき(2017/07/03 01:23)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2017年7月2日 >>> 2017年7月2日
link もっと後

管理用メニュー

link 記事を新規作成

<2017>
<<<07>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント5件

  • link 24年4月22日
    hdkさん (04/24 08:36)
    「うちのHHFZ4310は15年突破しまし...」
  • link 24年4月22日
    すずきさん (04/24 00:37)
    「ちゃんと数えてないですけど蛍光管が10年...」
  • link 24年4月22日
    hdkさん (04/23 20:52)
    「おお... うちのHHFZ4310より後...」
  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」

最近の記事20件

  • link 24年2月7日
    すずき (04/24 02:52)
    「[複数の音声ファイルのラウドネスを統一したい] PCやデジタル音楽プレーヤーで音楽を聞いていると、曲によって音量の大小が激しく...」
  • link 24年4月22日
    すずき (04/23 20:13)
    「[仕事部屋の照明が壊れた] いきなり仕事部屋のシーリングライトが消えました。蛍光管の寿命にしては去年(2022年10月19日の...」
  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
  • link 23年4月10日
    すずき (04/18 22:30)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
  • link 24年4月16日
    すずき (04/17 02:05)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その2 - インストール時のバイナリ書き換え] 目次: Zep...」
  • link 24年4月15日
    すずき (04/17 01:47)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その1 - 移動させると動かなくなる] 目次: ZephyrZ...」
  • link 24年4月11日
    すずき (04/17 00:37)
    「[VScodeとAsciiDocとKrokiローカルサーバー] 目次: LinuxAsciiDoc ExtensionはAsc...」
  • link 24年4月12日
    すずき (04/16 00:12)
    「[台湾東部沖地震に寄付] ささやかではありますが台湾東部沖地震に寄付しました。日本の赤十字社→台湾の赤十字(正式名称...」
  • link 22年9月3日
    すずき (04/16 00:08)
    「[MarkDownのその向こう] 目次: Linux簡単なドキュメントやメモはMarkDownで書くことが多いですが、気合を入...」
  • link 22年9月4日
    すずき (04/16 00:08)
    「[Asciidocをさらに活用] 目次: Linux前回(2022年9月3日の日記参照)、Asciidocのプレビュー環境の設...」
  • link 24年3月19日
    すずき (04/16 00:07)
    「[モジュラージャックの規格] 目次: Arduino古くは電話線で、今だとEthernetで良く見かけるモジュラージャックとい...」
  • link 23年6月2日
    すずき (04/16 00:07)
    「[Arduino - まとめリンク] 目次: Arduino一覧が欲しくなったので作りました。 M5Stackとesp32とA...」
  • link 24年4月9日
    すずき (04/12 12:44)
    「[初めて作ったボード動作せず(手で直した)] 目次: Arduino以前(2024年3月24日の日記参照)発注して、全く動ない...」
  • link 24年4月2日
    すずき (04/12 11:00)
    「[KiCadが動かなくなったのでビルド] 目次: ArduinoDebian Testingなマシンをapt-get upgr...」
  • link 24年4月3日
    すずき (04/12 11:00)
    「[初めて作ったボード動作せず(燃えた)] 目次: Arduino以前(2024年3月24日の日記参照)発注したPCBが届いたの...」
  • link 24年3月24日
    すずき (04/12 11:00)
    「[PCBを設計して注文] 目次: Arduinoシューティングの練習でいつもお世話になっているTARGET-1秋葉原店に、6つ...」
  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月18日
    すずき (03/19 11:47)
    「[画面のブランクを無効にする] 目次: LinuxROCK 3 model CのDebian bullseyeイメージは10分...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/24 08:36