Programmierbefehl mit Form für unendliche Bewegung

Fragen zu Tkinter.
Antworten
john trunix
User
Beiträge: 2
Registriert: Samstag 3. Oktober 2015, 09:22

Hallo, ich habe von einem Buch das programmieren von Python erlernt, jedoch sehr wenig erfahrung/wissen. Darum weiss ich nicht ob ich hier auch in der richtigen Sparte bin.

Meine Fragen:
1.)Wie kann ich in Tkinter eine Form so programmieren, wenn ich eine Pfeiltaste antippe das die Form sich in diese Richtung unendlich lang bewegt.
Ich möchte jedoch das, wenn man eine andere Pfeiltaste betätigt sich die Form unendlich lange in diese Richtung bewegt.

2.)Wie kann ich den Rand so programmieren vom Fenster (Tkinter), dass wenn die Form den Rand berührt, das Game fertig ist.

3.)Ist es möglich in Tkinter ein Bild einzufügen?

Info: Der Hintergedanke ist: Ich will ein Snack programmieren.

Vielen Dank im Voraus.
Mit freundlichen Grüssen:
John
BlackJack

@john trunix:

Ad 1) Man würde sich den akuellen Zustand/die aktuelle Richting merken („Hoch“, „Runter“, „Rechts“, „Links“ (und eventuell noch „Stehen“)) und die Tastenereignisse für die Pfeiltasten dann mit einer Methode verbinden (`Widget.bind()`) die den Zustand entsprechend setzt. Und für die Bewegung dann eine Methode die mit `Widget.after()` regelmässig aufgerufen wird und die Position entsprechend ändert.

Ad 2) Das sollte man, wie den Rest von der Spiel-Logik, nicht auf der Ebene von der dargestellten Grafik lösen. Es sollte nicht die dargestellte Grafik geben die einen Fensterrand berührt, sondern im Modell von dem Spiel einen Schlangenkopf, der zum Beispiel durch seine *Spielkoordinaten* angegeben ist, der am Rand des Spielfeldes in *Spielkoordinaten* steht. Und das prüft man einfach gegen die entsprechenden Randkoordinaten des Spielfeldes. Ob das Spielfeld in der Anzeige auf einem `Canvas` gezeichnet wird oder ein `Frame` mit `Label`\s in einer Grid-Anordnung verwendet wird, sollte auf den Code mit der Spiellogik keinen Einfluss haben.

Ad 3) Ja. :-)
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Für zuviel Fragen auf einmal hab ich gerade keine Zeit.

Ich würde vorschlagen, Du löst zuerst, dass etwas geprintet wird, wenn Du die Arrow Tasten drückst. Vielleich hilft Dir das etwas weiter: http://stackoverflow.com/questions/1989 ... key-events
john trunix
User
Beiträge: 2
Registriert: Samstag 3. Oktober 2015, 09:22

Danke vielmals ich probier es einaml. Ich habe damit gerechnet länger auf eine antwort zu warten. :D :D :D
MfG
John
Antworten