image image


Tutorial: Erste Schritte mit Cocos2d (2)

In diesem zweiten Teil meiner kleinen Reihe, in der ich versuche, mir selber Cocos2d (Python) beizubringen, möchte ich das minimale Grundgerüst aus dem ersten Teil weiter aufbohren. Im Endeffekt soll so etwas herauskommen, wie mein PyGame-Tutorial aus dem letzten Jahr (Teil 1, Teil 2, Teil 3 und Teil 4), das ich ja auch schon erfolgreich nach Processing.py portiert hatte (Teil 1, Teil 2, Teil 3 und Teil 4). Nun also der Versuch mit Cocos2d:

image

Um dieses Bild zu erzeugen, habe ich den Quelltext des Grundgerüstes nur ein wenig aufgebohrt:

import cocos
from cocos.director import director 
from cocos.scene import Scene
from cocos.layer import ColorLayer
from cocos.sprite import Sprite

class Game(ColorLayer):
    
    def __init__(self):
        super(Game, self).__init__(0, 80, 125, 255)
        self.player = Sprite("assets/horngirl.png")
        self.player.position = 160, 120
        self.add(self.player)

def main():
    director.init(caption = "Hello Hörnchen!", width = 320, height = 240)
    scene = Scene(Game())
    director.run(scene)

if __name__ == "__main__":
    main()

Die Klasse Game erbt von ColorLayer, der in der __init__()-Funktion eine Hintergrundfarbe im Format RGBA mitgegeben wird. Dann wird das Bild der jungen Dame geladen und positioniert. In der main()-Funktion wird die Scene geladen und angezeigt. Das ist alles, aber es geht noch mehr.

In einer zweiten Version habe ich ein Modul resources.py angelegt:

import pyglet

pyglet.resource.path = ["assets"]
pyglet.resource.reindex()

horngirl = pyglet.resource.image("horngirl.png")

und dort das Hörnchen versteckt. Damit kann man es sich im Hauptprogramm – besonders wenn man viele resourcen hat – noch einfacher machen:

import cocos
from cocos.director import director 
from cocos.scene import Scene
from cocos.layer import ColorLayer
from cocos.sprite import Sprite
import resources

class Game(ColorLayer):
    
    def __init__(self):
        super(Game, self).__init__(0, 80, 125, 255)
        self.player = Sprite(resources.horngirl)
        self.player.position = 160, 120
        self.add(self.player)

def main():
    director.init(caption = "Hello Hörnchen!", width = 320, height = 240)
    scene = Scene(Game())
    director.run(scene)

if __name__ == "__main__":
    main()

Cocos2d setzt ja bekanntlich auf PyGlet auf und warum soll man dann nicht PyGlet die Ressourcenverwaltung überlassen? Bei nur einer Ressource ist es eher Mehraufwand, aber bei vielen Ressourcen kann sich das durchaus auszahlen. Still digging!


(Kommentieren)  Erste Schritte mit Cocos2d (2) – 20170410 bitte flattrn

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image