読者です 読者をやめる 読者になる 読者になる

続cocos2d事始

Python

大型連休前にPython版cocos2dを触ってみて、予想通りインストールしてサンプルをちょっと動かしただけで飽きたわけだが、ここ数日iPhone版のcocos2dも少しいじっていて、「基本的な概念が同じならばPythonでやった方がプロトタイピングにはいいかも」と思い始めた。

プロトタイピングの重要性はここに書いた通り。Objective-Cも悪くない、むしろPythonと同じくらい好きな言語だが、ThinkPadUbuntuでは開発できないのがネック。Macではキーボードに悩まされてプロトタイピングに集中できない。

閑話休題。

Python版cocos2dはlos-cocosという名前でレポジトリが登録されているので、今後はiPhone版cocos2dと区別するために、los-cocosと呼ぶことにする。

los-cocosにはtetricoというテトリスっぽいサンプルゲームがついているので、これを読みながらゲームっぽいものを作っていこうと思う。

Sceneとdirector

Sceneはゲームの場面、例えば、スタート画面、設定画面、実際のゲーム画面等を表すオブジェクトで、directorはそれらのSceneやあるいはウィンドウなどのUIを管理するオブジェクト。directorは基本的には一つしか存在しない(はず)。ゆえにlos-cocosでは、

from cocos.director import director

のように、自分でインスタンスを作るのではなく、モジュールからインポートするだけで使える。一方、Sceneは前述のように、ゲームの場面に応じて複数ありうるので、自分で作らないといけない。

ということで、最小限に近いコードでlos-cocosでゲームウィンドウを作るには以下のコードのようになる。

# -*- coding: utf-8 -*-
from cocos.director import director
from cocos.scene import Scene

if __name__ == '__main__':
    director.init(resizable=True, width=400, height=500)
    scene = Scene()
    director.run(scene)

続きます。たぶん。