[PYTHON] Werde mit Tkinter Weihnachtsmann

Das erste Jahr von Reiwa geht zu Ende. In diesem Jahr war der Ansturm auf die Promi-Ehe auffällig. Neulich berichtete mein bester Freund plötzlich über meine Ehe. ~~ Bis vor kurzem sagte ich, dass Rokka-chans Beine dick sein sollten ... ~~ Als ich mich auf Twitter beschwerte, tröstete mich ein Ausländer, der es nicht wusste. Ich bin froh, dass meine Auslandserfahrung lebendig war.

Und die Welt ist Weihnachten. Viele Väter und Mütter werden der Weihnachtsmann sein. Diejenigen, die dieses Jahr geheiratet haben, sollten Weihnachtsmann werden, wenn sie in Zukunft Kinder haben.

Nachdem viele Jungvermählten ein Kind nur einmal in ihrem Leben großgezogen haben, fragen sie sich möglicherweise, wie sie Weihnachtsmann werden können. Für solche Leute habe ich ein Spiel gemacht, in dem Sie die Probe des Weihnachtsmanns üben können.

Also werde ich den Artikel für den 22. Tag von [Make IT AdventCalendar2019] schreiben (https://qiita.com/advent-calendar/2019/make_it).

Einführung

Dieses Mal habe ich Tkinter verwendet, um das Spiel zu erstellen. Der Basiscode ist Python-Spielprogrammierklasse von Grund auf ab 12 Jahren Da es aufgelistet ist, werde ich hauptsächlich die hinzugefügten Elemente beschreiben. Das Gute an diesem Buch ist, dass Sie erkennen können, dass Sie unter 12 Jahre alt sind, wenn Sie im Verständnis stecken bleiben. Du solltest jung sein.

Titelbildschirm

image.png

An dem Titel ist nichts auszusetzen. Es ist eine Geschichte über einen Mann, der in Detroit lebt und Weihnachtsmann wird. Ich freue mich auf den diesjährigen Frostbite.

Santagame.py


 
#Titelerstellung
frame = tkinter.Frame(width=960, height=640)
frame.place(x=10, y=10)
title = tkinter.Canvas(frame, width=960, height=640)
title.place(x=0, y=0)
title.create_rectangle(0, 0, 960, 640, fill="black")
title_label_up = tkinter.Label(frame, width=0, height=0, text=" ", font=("Arial Black", 70),                           fg="white", bg="black")
title_label_down = tkinter.Label(frame, width=0, height=0, text=" ", font=("Arial", 20),                                fg="white", bg="black")
press_any_key = tkinter.Label(frame, width=0, height=0, text=" ", font=("Arial", 25),                              fg="white", bg="black")
title_label_up["text"] = "DETROIT"
title_label_down["text"] = "B   E   C   O   M   E       S   A   N   T   A"
press_any_key["text"] = "-  Press any key to start  -"
title_label_up.place(x=240, y=220)
title_label_down.place(x=230, y=340)
press_any_key.place(x=280, y=480)

#Titel löschen
def forget_title(event):
    frame.destroy()

#Titel löschen
root.bind("<Any-KeyPress>", forget_title)


In Bezug auf den Code ist dies die Grundform zum Erstellen von Rahmen, Leinwand und Beschriftung. Verwenden Sie Tastenkombinationen und drücken Sie eine beliebige Taste, um sie auszuschalten.

Bildschirm abspielen

image.png

Bedienen Sie den Weihnachtsmann mit den Pfeiltasten.

Die Grundregel ist, ein Spielzeug und eine Axt zu holen und nach Hause zu fahren. Sie können Spielzeug bekommen, indem Sie mit einer Axt oder Geld in einen Spielwarenladen gehen. Wenn Sie nur eine Axt haben, werden Sie als Räuber behandelt und die Angriffskraft einiger Feinde nimmt zu. Seien Sie also vorsichtig. Das Halten einer Axt erhöht jedoch auch Ihre eigene Angriffskraft.

Das Erscheinen einer Axt im Schnee ist wie bei Sumijiro. Geben Sie nicht das Recht zu töten oder ihren Lebensunterhalt zu verdienen. Es ist ein Spiel, das Kindern die Härte einer solchen Gesellschaft beibringen kann, die tötet, bevor sie getötet werden.

Kampfbildschirm

image.png

Detroit (Voreingenommenheit) wirbelt vor Gewalt und Wahnsinn. Die Feinde sind nationale Macht und unsoziale Kräfte. Bevor sie Weihnachtsmann wurde, war die Hauptfigur nur eine verdächtige Person in roten Kleidern. Es kann nicht geholfen werden, wenn Ihnen eine Jobfrage gestellt wird. Das Weltbild ist zusammengebrochen, nur weil ich mich besonders für freie Materialien interessierte. Aber in einer anderen Welt wiedergeboren ist wahrscheinlich so.

Yakuza, der natürliche Feind von Yin und Yang, wird wütend, wenn er Geld hat. Töte, bevor du getötet wirst. Polizisten schießen nach dem Raub. Töte, bevor du getötet wirst.

Wenn Sie eine Axt haben, bleiben nach dem Kampf Blutflecken zurück.

image.png

Wenn Sie den Kampf verlieren, werden zwei Arten von Bildschirmen mit schlechtem Ende, westlich und japanisch, zufällig angezeigt.

Funktionen, die nicht implementiert werden konnten

Gif-Animationsanzeige des Weihnachtsmannbildes

Wenn Sie gif wie in Tkinter verwenden, wird nur das erste Bild angezeigt. Selbst wenn Sie es in einer Schleife ausführen, after () verwenden und Versuch und Irrtum ausführen, sinkt es. Als Kompromiss ändert sich das Bild bei jedem Gehen.

SantaGame.py


global santa_i
canvas.create_image(santa_x * 64 + 31, santa_y * 64 + 31,
                        image=santaImages[santa_direction][santa_i], tag="santa")
santa_i += 1
if santa_i > 3:
    santa_i = 0

Video im Tkinter-Fenster abspielen

Dies wird auch wie after () verwendet, sinkt jedoch. Ein Kompromiss besteht darin, in einem separaten Fenster zu spielen und das Fenster zu schließen, wenn Sie fertig sind.

SantaGame.py


fps = 250

if cap.isOpened() == False:
    print("Error!")

while cap.isOpened():

    ret, ending = cap.read()

    if ret == True:

        time.sleep(1/fps)
        cv2.imshow('ending', ending)

        if cv2.waitKey(1) & 0xFF == ord('q'):

             break

        else:
            break

cap.release()
cv2.destroyAllWindows()

Schlüssel im Kampf lösen

Zuerst habe ich auf die Pfeilschaltfläche geklickt, um den Weihnachtsmann zu bewegen, aber es war zu ungeschickt, also habe ich beschlossen, ihn mit der Taste zu binden. Wenn Sie sich jedoch während des Kampfes lösen, können Sie nicht den Zeitpunkt finden, an dem Sie am Ende des Kampfes wieder binden können ...

Da ich mir Gedanken darüber gemacht habe, ob ich stilvoll (vorläufig) oder funktional arbeiten soll, habe ich mich für die Koexistenz mit Fehlern entschieden. Dieser Fehler ist sozusagen wie Mameko. ~~ Wenn Sie den Unterschied zwischen guten und schlechten Fehlern nicht erkennen können, hören Sie auf, Ingenieur zu sein ~~ Bitte drücken Sie während des Kampfes nicht die Pfeiltasten.

abschließend

Wenn Sie spielen möchten, laden Sie bitte von hier herunter und starten Sie SantaGame.py.

Morgen wird @fumihumi verantwortlich sein.

Recommended Posts

Werde mit Tkinter Weihnachtsmann
MVC mit Tkinter
Programmieren mit Python und Tkinter
Einführung in Tkinter 2: Button
Arbeiten Sie mit tkinter und Maus
Bildschirmumschaltung / Bildschirmübergang mit Tkinter
Erstellen Sie den Image Viewer mit Tkinter
Führen Sie Label mit tkinter [Python] aus.
Ich habe den BMI mit tkinter gemessen
Einfache GUI App mit Tkinter Text
Async / warte mit Kivy und tkinter
[Tkinter] Steuert Threads mit Ereignisobjekt
[Python] Erstellen mehrerer Fenster mit Tkinter
Videowiedergabe mit Ton auf Python !! (tkinter / imageio)
Erstellen einer Bildaufteilungs-App mit Tkinter
Machen Sie GUI-Apps mit tkinter ganz einfach
Erstellen Sie eine GUI-App mit Tkinter of Python
Entwickeln Sie Windows-Apps mit Python 3 + Tkinter (Vorbereitung)