Seite 1 von 1
Is Python das richtige?
Verfasst: Dienstag 18. August 2009, 20:47
von Kampfkuchen
Hi,
ich bin neu hier
Somit auch in der Python-welt...

Bis jetz hab ich nur Programmiersprachen benutzt die so umständlich waren das man fürn hello world schon mal 20-25 Zeilen hat... z.B. C für die PSP...
Hat mir lange zeit spaß gemacht... nur jetz hab ich keinen bock mehr drauf...
ich such ne Script/Programmiersprache die leicht zu verstehn is, 3D tauglich, und recht gut für spiele is...
Hab mit Bacht-files begonnen
dann über HTML, LUA (PSP), C (PSP), JavaScript, C++, Java, PHP, und i-was war da noch... kp
Wie alles abläuft weiß ich also schon... nur weiß ich ned wie das alles mit den Compilern geht...
bei mir gehn auch alle samples nachn öffnen gleich wieder zu...
Ähm... ja also so ein "How to - wie fang ichn überhaupt an?!" Tutorial wär ned schlecht

Was kann man mit Python alles machen?
Wie geht das mim Compiliern?
bzw. was is mit PyGame? is ne lib oder?
Ich wieß man solls ned tun und so...

aber ich würd gern wenn möglich gleich mit GUI anfangen
Was könnt ihr mir da empfehlen?
Vielen Dank!

Verfasst: Mittwoch 19. August 2009, 00:00
von Dauerbaustelle
Hallo!
Also, Tutorials findest du hier im Forum genug, schau mal unter "Links und Tutorials". Mit Python kann man "alles" machen; es gibt schon eine riesige Menge an libraries für jeden Sch.... Einsatzzweck, und du hast auch ne Anbindung an C/C++ (ctypes z.B.). Spiele gehen mit der Pygame-lib, da gibts aber IMHO bessere. 3D-Bibliotheken kenne ich zwar keine, aber es gibt da schon ein paar. Allerdings weiß ich nicht, wie das mit der Geschwindigkeit ist.
Python ist nämlich nicht besonders schnell beim Ausführen ;-) (Das ist in ~70% der Anwendungsfälle egal, aber für Spiele, wo es auf ruckelfreie und latenzfreie Anzeige/Berechnung ankommt, eher nicht.)
"Compilen" gibt es nicht in der Form wie mit C oder C++; du kannst Python-Code nur zu Bytecode (wie Java) übersetzen, der dann vom Python-Interpreter interpretiert wird (vgl: Java Virtual Machine).
Im Prinzip brauchst du fürs Ausführen nur ein Kommando:
Für GUI würde ich dir auf jeden Fall GTK empfehlen, Qt und Wx mag ich wegen der API nicht so sehr. (Die PyGTK-API ist imho zumindest das geringste Übel.)
So, ich hoffe trotz der späten Zeit nicht zur viele Rechtschreibfehler drinne zu haben :)
Gruß
Verfasst: Mittwoch 19. August 2009, 12:24
von Michael Schneider
Hi,
als 3D-Engine mit Python Scripts schau Dir mal Panda3D an!
Das meiste wird von der Engine erledigt, wie das auch sein sollte. Python wird hauptsächlich verwendet, um die Gameobjektstruktur zu verwalten. Du musst Dir dabei die 3D-Welt wie einen Baum vorstellen. Alles was im Baum hängt, wird in der Szene dargestellt, oder zumindest berücksichtigt.
Mit Python kannst Du Objekte, z.B. eine Kisten, laden und einfach an die Baumstruktur an gewünschter Position einhängen. Und voila, schon sind sie in der Scene. Finde ich genial.
Ich habe da auch nur die Tutorials durchgespielt, weil mir die Modell- und Animationserzeugung etwas zeitraubend war. Aber wenn Du firm bist, sag bescheid, dann bauen wir damit mal was.
Achja: wenn Du Deine Scripts in Windows per Doppelklick ausführst, schließt sich das Terminal am Ende der Ausführung automatisch. Entweder Du führst die Scripts in einer MS-DOS Eingabeaufforderung aus (rechtsklick auf die Datei => öffnen mit => MS-DOS Eingabeaufforderung oder so und dann "python scriptname") oder Du fügst Dein Programm in folgende Struktur ein:
Code: Alles auswählen
...
def main():
<< Hauptcode >>
if __name__ == "__main__":
try:
main()
finally:
raw_input("Enter zum Schliessen")
Ohne den try-finally Block würde das Fenster nur bei korrekter Ausführung das raw_input erreichen und offen bleiben, bei Laufzeitfehlern aber trotzdem verschwinden. Wie angedeutet funktioniert das aber nur bei Laufzeitfehlern, also wenn das Programm in die main() bereits eingetreten ist.
Die bessere Variante ist, das Script aus der Shell oder MS-DOS Eingabeaufforderung zu starten.
Michael
Verfasst: Mittwoch 19. August 2009, 12:43
von Michael Schneider
Und als GUI um sofort anzufangen: Tkinter.
einfach:
Code: Alles auswählen
import Tkinter as tk
tk.Label(text="Hallo Welt!").grid()
tk.Button(text="beenden", command=tk._default_root.destroy).grid()
tk.mainloop()
ausführlich:
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="Hallo Welt!")
label.grid(row=1, column=1)
button = tk.Button(root, text="beenden", command=root.destroy)
button.grid(row=2, column=1)
root.mainloop()
Auch, wenn ich jetzt wieder viele Buuuh-Rufe ernten werde von Leuten, die Dir sagen "fang doch gleich mit etwas vernünftigem an". Ich stehe zu Tkinter und habe absolut nichts gegen das Aussehen.
Verfasst: Mittwoch 19. August 2009, 12:58
von hendrikS
Es lohnt sich durchaus auch mal in den Forum Beiträgen zu stöbern.
Die Frage ob Python das richtige ist, ist hier schon dutzendfach gestellt und vor und zurueck diskutiert wurden, auch im Vergleich zu anderen Programmiersprachen mit Vor- und Nachteilen.
Verfasst: Mittwoch 19. August 2009, 13:04
von Michael Schneider
Ich sehe gerade, da gibt es noch einen parallelen Thread zur Fragen, wie man das Fenster am besten offen halten kann:
http://www.python-forum.de/topic-11739.html
Verfasst: Mittwoch 19. August 2009, 15:43
von Kampfkuchen
Vielen Dank für eure schnellen antworten!
Werd mich dann gleich mal drauf stürtzen

Verfasst: Mittwoch 19. August 2009, 16:08
von Dav1d
Michael Schneider hat geschrieben:Und als GUI um sofort anzufangen: Tkinter.
einfach:
Code: Alles auswählen
import Tkinter as tk
tk.Label(text="Hallo Welt!").grid()
tk.Button(text="beenden", command=tk._default_root.destroy).grid()
tk.mainloop()
ausführlich:
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="Hallo Welt!")
label.grid(row=1, column=1)
button = tk.Button(root, text="beenden", command=root.destroy)
button.grid(row=2, column=1)
root.mainloop()
Auch, wenn ich jetzt wieder viele Buuuh-Rufe ernten werde von Leuten, die Dir sagen "fang doch gleich mit etwas vernünftigem an". Ich stehe zu Tkinter und habe absolut nichts gegen das Aussehen.
Buuuuuuuuuuuuuh

, ich empfehle wxPython und das Tut:
http://wiki.wxpython.org/AnotherTutorial und das:
http://www.zetcode.com/wxpython/ , die beiden sind sich ziemlich ähnlich, (zu ähnlich), ich nehme an dass teile aus dem 1 tut ins 2. kopiert wurden, find ich aber nicht schlimm und auf
http://wxpython.org unbedingt auch die wxPython demo runterladen (Goldwert)
als absoulutes Anfängerbuch in Python empfehle ich die Python4kids (das Buch gibts auf amazon
http://www.amazon.de/Python-f%C3%BCr-Ki ... 577&sr=8-1 ) und A byte of Python
http://abop-german.berlios.de/
mfg
Verfasst: Mittwoch 19. August 2009, 16:14
von Ene Uran
Zum Anfang die Tkinter GUI, nett und einfach zu lernen. PyGTK ist furchtbar wenn du eine Windows Kiste hast. Unter furchtbar ist nicht nur der Syntax, aber auch die Installation und dann mal spaeter die Weitergabe deiner Programme. Ich habe mal versucht eine einfache Listbox mit PyGTK zu bauen, was ein Chaos das ist!
Verfasst: Donnerstag 20. August 2009, 19:24
von Leonidas
Ene Uran hat geschrieben:Ich habe mal versucht eine einfache Listbox mit PyGTK zu bauen, was ein Chaos das ist!
Kiwi existiert.
Verfasst: Donnerstag 20. August 2009, 20:15
von jens
Denke in guter Einstieg finde man hier: [wiki]FAQ[/wiki]
Ansonsten ist blender vielleicht interessant. Hat ja auch was in Richtung Game-Engine...