2009-04-17 6 views
3

Hast du jemals das Spiel Monopoly Tycoon gespielt? Ich finde es toll. Ich würde es gerne neu machen. Leider habe ich keine Erfahrung, wenn es um 3D-Programmierung geht. Ich stelle mir vor, es gibt eine relativ steile Lernkurve, wenn es um OpenGL-Sachen geht, herauszufinden, was angeklickt wird und so weiter ...Wenn Sie Monopoly Tycoon in Python klonen würden, welche Bibliotheken würden Sie verwenden?

Wenn Sie diese Aufgabe übernehmen würden, welche Bibliotheken würden Sie brauchen?

Antwort

6

pyGame scheint ziemlich ausgereift und baut auf der bewährten SDL-Bibliothek.

+1

+1 Pygame ist sehr ausgereift, und baute auf der Spitze von clibraries, so ist es relativ schnell für das, was es ist. – Alex

4

Ich würde Pyglet verwenden. Es ist alles OpenGL von Anfang an, baut nicht auf hässlichen SDL-Bibliothek und hat bessere Schnittstellen als was ich in anderen Python-Multimedia-Bibliotheken gesehen habe.

import pyglet 
from pyglet.gl import * 

class Application(object): 
    def __init__(self): 
     self.window = window = pyglet.window.Window() 
     window.push_handlers(self) 

    def on_draw(self): 
     self.window.clear() 
     glBegin(GL_TRIANGLES) 
     glVertex2f(0,0) 
     glVertex2f(200,0) 
     glVertex2f(200,200) 
     glEnd() 

if __name__=='__main__': 
    app = Application() 
    pyglet.app.run() 

Ich schrieb dies von Grund auf, um Ihnen eine Referenz zu zeigen. Du kannst damit ziemlich anfangen.

Es gibt ein paar nützliche Dinge in der Bibliothek wie Vertex-Listen, Texturen, Scheduling, Unicode-Fonts, ein wenig UI-Komponenten, Event-Dispatching, Audio. Die Bibliothek selbst ist chaotisch und ich mag es nicht so sehr. Aber das ist meine Meinung aus jeder Bibliothek, die weit verbreitet ist und in die ich mich vertieft habe.

Ich selbst bin unzufrieden mit dem OpenGL Namespacing. Es wäre besser mit Nicht-C-Namespace in der Front. Das würde dich in etwas Flexibilität lassen:

from pyglet.gl import Begin, Vertex2f, TRIANGLES, End 

... 
    Begin(TRIANGLES) 
    Vertex2f(0,0) 
    Vertex2f(200,0) 
    Vertex2f(200,200) 
    End() 
+0

pyglet ist eigentlich das, was ich geplant habe ... ich wollte nur sicherstellen, dass es nichts besseres gibt. Ich denke, ich bleibe dabei. – carrier

+1

Wissen Sie, warum SDL hässlich ist? – Skurmedel

+0

Wissen Sie, warum SDL nicht hässlich ist ?! – WhatIsHeDoing

Verwandte Themen