mieki256's diary



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ゲームを作れるなら気軽に始められそうだよな、という気もするわけで。ちょっと試しに触ってみようかなと。

インストール方法。 :

自分の環境は Windows10 x64 + Python 2.7.13 32bit。とりあえず cocos2d をインストール。DOS窓を開いて以下を打つ。
pip install cocos2d
cocos2d の動作には、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
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 もアンインストーラのインストールに成功した模様。

解説記事がほとんど無い。 :

ググっても、cocos2d-x 等の記事しか出てこないな…。かろうじて見かけたのは以下ぐらい。ありがたや。

_続cocos2d事始 - スコトプリゴニエフスク通信
_続cocos2d事始 - Menuを作る - スコトプリゴニエフスク通信

以上です。

過去ログ表示

Prev - 2017/08 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project