2017/08/18(金) [n年前の日記]
#2 [python][cocos2d] cocos2dを少し触ってみた
cocos2dは、Pythonを使って2Dゲームを作れるライブラリ。pygletを使ってOpenGLで描画するので、SDLを使う pygame と違って高速に描画できるらしい。「Pythonで2Dゲームを作りたい」と質問すると十中八九「pygame使え」と返されるけど、「pygameは遅いんじゃい」と抗議すると「じゃあ pyglet や cocos2d でも使えば」と言われる、そんな雰囲気があるというか。
もっとも、cocos2d はあまり人気がないようで…。どちらかというと cocos2d を参考にして作られた cocos2d-x や、iPhone対応の Cocos2d-Swift のほうが人気者っぽい。
_cocos2dの歴史をまとめてみた。cocos2d-x と cocos2d-iphoneと cocos2d-swift と cocos2d-html5 と cocos3d の違い | miyahiraブログ
とは言え、スクリプト言語で2Dゲームを作れるなら気軽に始められそうだよな、という気もするわけで。ちょっと試しに触ってみようかなと。
もっとも、cocos2d はあまり人気がないようで…。どちらかというと cocos2d を参考にして作られた cocos2d-x や、iPhone対応の Cocos2d-Swift のほうが人気者っぽい。
_cocos2dの歴史をまとめてみた。cocos2d-x と cocos2d-iphoneと cocos2d-swift と cocos2d-html5 と cocos3d の違い | miyahiraブログ
とは言え、スクリプト言語で2Dゲームを作れるなら気軽に始められそうだよな、という気もするわけで。ちょっと試しに触ってみようかなと。
◎ インストール方法。 :
自分の環境は Windows10 x64 + Python 2.7.13 32bit。とりあえず cocos2d をインストール。DOS窓を開いて以下を打つ。
また、音を鳴らすためには SDL が必要になるらしいので、SDL を使えるようにしてくれる pygame もインストールする。
ちなみに、cocos2d が要求する six てのは、Python2 と Python3 の両方で動くソースを書けるようにするパッケージ。その手のパッケージは他にもあるらしいけど。future (python-future) とか。cocos2d は six を使ってるよ、ということなのだろう…。
_Python でバージョンニュートラルなコードを書くためのライブラリ Six | CUBE SUGAR STORAGE
_Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER
pyglet てのは、Python から OpenGL を使えるようにしてくれるパッケージ。OpenGL を使って描画すると高速に描画できるのだ、ぐらいに思っておけばいいかなと。
他にも、
_Installation, Dependencies and Compatibility - cocos v0.6.4 documentation
pip install cocos2dcocos2d の動作には、six、pyglet が必要なので、それらも一緒にインストールされるかもしれない。自分の場合は six も pyglet もインストール済みだったので、cocos2d だけインストールされた。
また、音を鳴らすためには SDL が必要になるらしいので、SDL を使えるようにしてくれる pygame もインストールする。
pip install pygame
ちなみに、cocos2d が要求する six てのは、Python2 と Python3 の両方で動くソースを書けるようにするパッケージ。その手のパッケージは他にもあるらしいけど。future (python-future) とか。cocos2d は six を使ってるよ、ということなのだろう…。
_Python でバージョンニュートラルなコードを書くためのライブラリ Six | CUBE SUGAR STORAGE
_Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER
pyglet てのは、Python から OpenGL を使えるようにしてくれるパッケージ。OpenGL を使って描画すると高速に描画できるのだ、ぐらいに思っておけばいいかなと。
他にも、
- パーティクルを使いたければ numpy が必要とか。
- 動画を再生したかったら AVbin も必要とか。
_Installation, Dependencies and Compatibility - cocos v0.6.4 documentation
◎ ハローワールド。 :
とりあえずウインドウを表示しないと話にならないので、以下のチュートリアルに従ってソースを打って、というかコピペして実行してみたり。
_Writing a cocos2d application - cocos v0.6.4 documentation
_hello_world.py
python hello_world.py で実行。チュートリアル記事に載ってるソレと同様のウインドウが表示された。どうやら問題なくインストールできたっぽい。
サンプルソースは無いのかな? 以下のページから cocos2d-0.6.4.zip をDLして解凍すれば、その中にサンプルソース群が入ってる模様。上記のソースも入ってた。また、ドキュメントも(全部英文だけど)入ってた。
_cocos2d 0.6.4 : Python Package Index
とりあえず、samples/hello_world_actions.py を実行したら画像が回転拡大縮小しながら表示されたし、samples/handling_events.py を実行したらマウスのカーソル座標やキーボード入力を検出できたので、ちゃんと動いてるっぽいなと。
ググってみたら、以下でもサンプルソースが公開されてた。
_liamrahav/cocos2d-python-tutorials - github
_Writing a cocos2d application - cocos v0.6.4 documentation
_hello_world.py
import cocos class HelloWorld(cocos.layer.Layer): def __init__(self): super(HelloWorld, self).__init__() label = cocos.text.Label( 'Hello, world !!', font_name='Times New Roman', font_size=64, anchor_x='center', anchor_y='center' ) label.position = 320, 240 self.add(label) cocos.director.director.init() cocos.director.director.run(cocos.scene.Scene(HelloWorld()))
python hello_world.py で実行。チュートリアル記事に載ってるソレと同様のウインドウが表示された。どうやら問題なくインストールできたっぽい。
サンプルソースは無いのかな? 以下のページから cocos2d-0.6.4.zip をDLして解凍すれば、その中にサンプルソース群が入ってる模様。上記のソースも入ってた。また、ドキュメントも(全部英文だけど)入ってた。
_cocos2d 0.6.4 : Python Package Index
とりあえず、samples/hello_world_actions.py を実行したら画像が回転拡大縮小しながら表示されたし、samples/handling_events.py を実行したらマウスのカーソル座標やキーボード入力を検出できたので、ちゃんと動いてるっぽいなと。
ググってみたら、以下でもサンプルソースが公開されてた。
_liamrahav/cocos2d-python-tutorials - github
◎ AVbinも一応インストール。 :
オーディオと動画関係を扱える AVbin なるものもインストールしておいたほうがいいのかなと思えてきたので、一応インストールしてみたり。
_AVbin Downloads から、Windows版のインストーラを入手。AVbin10-win32.exe と AVbin10-win64.exe をDLした。
それぞれ実行したところ、C:\WINDOWS\system32\ 以下に、avbin.dll と avbin64.dll がコピーされた。
32bit版のほうはアンインストーラもインストールしてくれたけど、64bit版のほうはアンインストーラのインストールに失敗してる模様。
_Downloads - AVbin/AVbin で、Ver.11 等があるらしいので、試しに AVbin11alpha4-win32.exe , AVbin11alpha4-win64.exe をDLして実行、インストールしてみたら、この版は 32bit も 64bit もアンインストーラのインストールに成功した模様。
_AVbin Downloads から、Windows版のインストーラを入手。AVbin10-win32.exe と AVbin10-win64.exe をDLした。
それぞれ実行したところ、C:\WINDOWS\system32\ 以下に、avbin.dll と avbin64.dll がコピーされた。
32bit版のほうはアンインストーラもインストールしてくれたけど、64bit版のほうはアンインストーラのインストールに失敗してる模様。
_Downloads - AVbin/AVbin で、Ver.11 等があるらしいので、試しに AVbin11alpha4-win32.exe , AVbin11alpha4-win64.exe をDLして実行、インストールしてみたら、この版は 32bit も 64bit もアンインストーラのインストールに成功した模様。
◎ 解説記事がほとんど無い。 :
ググっても、cocos2d-x 等の記事しか出てこないな…。かろうじて見かけたのは以下ぐらい。ありがたや。
_続cocos2d事始 - スコトプリゴニエフスク通信
_続cocos2d事始 - Menuを作る - スコトプリゴニエフスク通信
_続cocos2d事始 - スコトプリゴニエフスク通信
_続cocos2d事始 - Menuを作る - スコトプリゴニエフスク通信
[ ツッコむ ]
以上です。