[PYTHON] Devenez Père Noël avec Tkinter

La première année de Reiwa est sur le point de se terminer. Cette année, la ruée vers les mariages de célébrités était remarquable. L'autre jour, mon meilleur ami a soudainement signalé mon mariage. ~~ Jusqu'à récemment, je disais que les jambes de Rokka-chan devraient être épaisses ... ~~ Quand je me suis plaint sur Twitter, un étranger qui ne savait pas m'a réconforté. Je suis heureux que mon expérience d'études à l'étranger soit vivante.

Et le monde est Noël. De nombreux papas et mamans seront le Père Noël. Ceux qui se sont mariés cette année devraient devenir le Père Noël s'ils ont des enfants à l'avenir.

Cependant, après avoir élevé un enfant une seule fois dans sa vie, de nombreux jeunes mariés se demandent peut-être comment devenir le père Noël. Pour ces personnes, j'ai créé un jeu où vous pouvez pratiquer la répétition du Père Noël.

Alors, j'aimerais écrire un article le 22e jour de Make IT AdventCalendar2019.

introduction

Tkinter a été utilisé pour créer le jeu cette fois. Le code de base est Classe de programmation de jeux Python à partir de zéro à partir de 12 ans Puisqu'il est listé, je décrirai principalement les éléments ajoutés. La bonne chose à propos de ce livre est que vous pouvez vous rendre compte que vous avez moins de 12 ans lorsque vous êtes coincé dans la compréhension. Tu devrais être jeune.

écran titre

image.png

Il n'y a rien de mal avec le titre. C'est l'histoire d'un homme vivant à Detroit qui devient le Père Noël. J'ai hâte aux gelures de cette année.

Santagame.py


 
#Création de titre
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)

#Effacer le titre
def forget_title(event):
    frame.destroy()

#effacer le titre
root.bind("<Any-KeyPress>", forget_title)


En ce qui concerne le code, c'est la forme de base de la création de Frame, Canvas et Label. Utilisez les raccourcis clavier et appuyez sur n'importe quelle touche pour le désactiver.

Écran de lecture

image.png

Faites fonctionner le Père Noël avec les touches fléchées.

La règle de base est d'obtenir un jouet et une hache et de rentrer à la maison. Vous pouvez obtenir des jouets en allant dans un magasin de jouets avec une hache ou de l'argent. Si vous n'avez qu'une hache, vous serez traité comme un voleur et la puissance d'attaque de certains ennemis augmentera, alors soyez prudent. Cependant, tenir une hache augmente également votre propre puissance d'attaque.

L'apparence de balancer une hache sur la neige est comme Sumijiro. Ne donnez pas le droit de tuer ou de vivre. C'est un jeu qui peut enseigner aux enfants la dureté d'une telle société qui tue avant d'être tuée.

Écran de combat

image.png

Detroit (parti pris) tourbillonnant de violence et de folie, les ennemis sont le pouvoir national et les forces antisociales. Avant de devenir le Père Noël, le personnage principal n'était qu'une personne suspecte en vêtements rouges. Cela ne peut pas être aidé si on vous pose une question d'emploi. La vision du monde s'est effondrée simplement parce que j'étais particulier à propos des matériaux gratuits. Mais réincarné dans un autre monde est probablement comme ça.

Yakuza, l'ennemi naturel du Yin et du Yang, se mettra en colère s'il a de l'argent. Tuez avant de vous faire tuer. Les policiers tirent après le vol. Tuez avant d'être tué.

Si vous avez une hache, des taches de sang resteront après la bataille.

image.png

Si vous perdez la bataille, deux types d'écrans de mauvaise fin, occidentaux et japonais, apparaîtront au hasard.

Fonctions qui n'ont pas pu être implémentées

Affichage de l'animation Gif de l'image du Père Noël

Si vous utilisez gif tel quel dans Tkinter, seule la première image sera affichée, donc même si vous la bouclez, utilisez after () et faites des essais et des erreurs, elle coulera. En guise de compromis, l'image change à chaque fois que vous marchez.

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

Lire la vidéo dans la fenêtre Tkinter

Ceci est également utilisé comme after (), mais il tombe. Un compromis est de jouer dans une fenêtre séparée et de fermer la fenêtre une fois terminé.

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()

Délier les clés au combat

Au début, j'avais l'habitude de cliquer sur le bouton fléché pour déplacer le Père Noël, mais c'était trop maladroit, alors j'ai décidé de le lier au clavier. Cependant, si vous vous détachez pendant la bataille, vous ne pouvez pas trouver le moment de la relier à la fin de la bataille ...

En raison du souci de prendre du style (provisoire) ou des fonctionnalités, j'ai choisi de coexister avec des bugs. Pour ainsi dire, ce bug est comme Mameko. ~~ Si vous ne pouvez pas faire la différence entre les bons et les mauvais bugs, arrêtez d'être ingénieur ~~ Alors s'il vous plaît, n'appuyez pas sur les touches fléchées pendant la bataille.

en conclusion

Si vous voulez jouer, veuillez télécharger à partir de ici et démarrer SantaGame.py.

Demain, @fumihumi sera aux commandes.

Recommended Posts

Devenez Père Noël avec Tkinter
MVC avec Tkinter
Programmation avec Python et Tkinter
Introduction à Tkinter 2: Button
Travailler avec le tkinter et la souris
Changement d'écran / transition d'écran avec Tkinter
Créer une visionneuse d'images avec Tkinter
Exécuter Label avec tkinter [Python]
J'ai mesuré l'IMC avec tkinter
Application GUI facile avec Tkinter Text
Async / await avec Kivy et tkinter
[Tkinter] Contrôler les threads avec l'objet Event
[Python] Création de plusieurs fenêtres avec Tkinter
Lecture vidéo avec son sur python !! (tkinter / imageio)
Créer une application de fractionnement d'image avec Tkinter
Rendez les applications GUI super faciles avec tkinter
Créer une application graphique avec Tkinter de Python
Développer des applications Windows avec Python 3 + Tkinter (Préparation)