[PYTHON] Créer une application en classifiant avec Pygame

Qu'est-ce que python

Un langage polyvalent qui peut faire presque tout sauf les logiciels système (logiciels intégrés). [GUI](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%82%AB%E3%83 % AB% E3% 83% A6% E3% 83% BC% E3% 82% B6% E3% 82% A4% E3% 83% B3% E3% 82% BF% E3% 83% 95% E3% 82% A7 % E3% 83% BC% E3% 82% B9) et [AI](https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5 % E8% 83% BD) serait très bon dans ce domaine.

Qu'est-ce que la classification?

Comment créer un modèle appelé classe et créer une chose réelle appelée instance. Il est implémenté dans de nombreux langages tels que C ++, C #, Java et Python, et vous pouvez créer des applications faciles à voir. Pour plus d'informations, voir Orienté objet (https://en.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF% Veuillez lire E3% 83% 88% E6% 8C% 87% E5% 90% 91).

Qu'est-ce que pygame

Une collection de modules Python multiplateformes conçus pour la création de jeux vidéo, y compris une bibliothèque pour travailler avec des graphiques informatiques et de l'audio en Python. pygame est construit au-dessus de la bibliothèque SDL et est conçu pour permettre le développement de jeux informatiques en temps réel sans utiliser de mécanismes de bas niveau comme le langage C. Ceci est basé sur l'hypothèse que la plupart des fonctions intensives en calcul (principalement le traitement graphique) peuvent être séparées de la logique du jeu elle-même, ce qui permet d'utiliser des langages de haut niveau comme Python pour le développement de jeux. Il y a. Veuillez lire PYGAME pour plus de détails.

Exemple de script

skeleton.pyw


import pygame,main,apng,OpenGL as lse,OpenGL.GL as lily 
from pygame.locals import * 

class CVak:
    #Barre inférieure*2 privé
    #__RenderName = None
    #__Scene = None
    #__FULLNESS = (22222,)Déclaration constante(Capitale taple)L'accès est-ce.__FULLNESS[0]

    #constructeur(Initialisation de classe)
    def __init__(this):#Cette partie est généralement appelée soi ou ceci
        #Création de la cible de rendu
        #exp/this(self).__RenderName = main.CvRender("Data\\name.png ",posx,posy)
        #this.__Scene = CvScene()
        pass#Pas besoin de fonctions anonymes comme C qui ne font rien<-L'interprète l'ignorera.

    #Processus d'initialisation(à chaque fois)
    def init(this):
        return

    #Processus de mise à jour lors de la saisie d'une clé
    def UpdDwKey(this,key):
        #if key == K_Up:
        return

    #Mettre à jour le traitement au moment de la sortie de clé
    def UpdUpKey(this,key):
        return

    #Obtenir les coordonnées de la souris
    def MousePos(this,x,y):
        return

    #Processus de mise à jour
    def Update(this):
        return

    #Processus de dessin
    def Draw(this):
        #exp/this.__RenderName.Draw()
        return

    #Traitement de la lecture de musique pygame.système de mixage
    def Music(this):
        return

    #Boucle de jeu
    def GameLoop(this):
        if(False):#N'active pas
            this.init()
        this.Update()
        #Sortie couleur à l'écran
        main.Main.Drawwnd(main.Clist.Red.get())
        this.Draw()
        this.Music()
        pass

    #Terminer le traitement
    def finGame(this):
        return

main.pyw


import pygame ,sys,OpenGL as GL
from OpenGL.GL import *
from OpenGL.GLU import *
import skeleton as sk

class Main:
    #Variables statiques
    #__SCRFLG = ((pygame.OPENGL|pygame.DOUBLEBUF),)Lorsque vous avez besoin de 3D
    __SCRFLG = (0,)#2D
    __ScreenHeight:int = 810
    __ScreenWidth:int = 931
    __GameFPS:int = 60
    __GameName:str = "Vgame"
    pygame.init()
    __wnd = pygame.display.set_mode((__ScreenWidth,__ScreenHeight),__SCRFLG[0]) 
    pygame.display.set_caption(__GameName)
    pygame.time.Clock()
    __wnd.fill((0,0,255))
    __game = None
        
    def quit():
        Main.__game.finGame()
        pygame.quit()
        sys.exit(None)

    def Eventloop(event):
        if(event.type == pygame.QUIT):
            Main.quit()
        if(event.type == pygame.KEYDOWN):
            if(event.key == pygame.K_ESCAPE):
                Main.quit()
            else:
                Main.__game.UpdDwKey(event.key)
                return
        if(event.type == pygame.KEYUP):
            Main.__game.UpdUpKey(event.key)
        if(event.type == pygame.MOUSEMOTION):
            (x, y) = event.pos
            Main.__game.MousePos(x,y)
        else:
            return

    def GameMain():
        Main.__game = sk.CVak()
        while(True):
            for event in pygame.event.get():
                Main.Eventloop(event)
            Main.__game.GameLoop()
            pygame.display.update()
        return

    def Drawwnd(color):
        Main.__wnd.fill(color)

    def getWndGet():
        return Main.__wnd
        
#fonction principale
def main():
    Main.GameMain()

class CvRender:
    x:int
    y:int
    path:str
    surf:int

    def __init__(this,path,x,y):
        this.path = path
        this.x = x
        this.y = y
        this.surf = pygame.image.load(this.path).convert_alpha()
    
    def getSizeGet(this):
        return (-this.surf.get_width(),-this.surf.get_height())

    def Draw(this):
        Main.getWndGet().blit(this.surf,(this.x,this.y))
    
    def DrawMiddle(this):
        Main.getWndGet().blit(this.surf,(this.x-this.surf.get_width()/2
                                         ,this.y-this.surf.get_height()/2))

    def CutDraw(this,startx,starty,cutx,cuty):
        Main.getWndGet().blit(this.surf,(this.x,this.y),(startx,starty,cutx,cuty))
    
    def Rev(this,bx,by):
        this.surf = pygame.transform.flip(this.surf,bx,by)

    def Scale(this,sx,sy):
        this.surf = pygame.transform.scale(this.surf,(sx,sy))

    def Rot(this,angle):
        this.surf = pygame.transform.rotate(this.surf.convert(),angle)

class HitsFlg():

    #Mettre la largeur dans posz
    def tri(pos1,pos2,h2):
        if(pos1.posx + pos1.posz <= pos2.posx 
           or pos1.posx >= pos2.posx + pos2.posz):
            return False
        elif(pos2.posy + h2 >= pos1.posy 
             or pos1.posy <= pos2.posy + h2):
            return False
        else:
            return True

    def yen(pos0,pos1):
        posx = pos1.x - pos0.x
        posy = pos1.y - pos0.y
        rad = pos1.z + pos0.z
        if(pow(posx,2) + pow(posy,2) 
           <= pow(rad,2)):
            return True
        else:
            return False
        pass

class CvPos():
    x:int
    y:int
    z:int
    def __init__(this,posx,posy,Btwn):
        this.x = posx
        this.y = posy
        this.z = Btwn

class Cv3DPos():
    pos:CvPos
    size:CvPos

    def __init__(this,posx:int,posy:int,posz:int,sizex = 0,sizey = 0):
        this.pos = (posx,posy,posz)
        this.size = (sizex,sizey,0)
        return 

    def location_in_view(this,adj_x, adj_y):
        """Calcul de coordonnées sur 2D à partir de coordonnées 3D"""
        x2 = int((this.pos.x + adj_x * this.pos.y) / (this.pos.z/10 + 1)) + 200 - int(this.size.x * 0.5 / (this.pos.z/10 + 1))
        y2 = int((this.pos.y + adj_y * this.pos.z) / (this.pos.z/10 + 1)) + 150 - int(this.size.y * 0.5 / (this.pos.z/10 + 1)) 
        return (x2, y2)

    def size_in_view(this):
        """Calcul de taille en 2D à partir de coordonnées 3D"""
        s_x2 = int(this.size.x / (this.pos.z/10 + 1))
        s_y2 = int(this.size.y / (this.pos.z/10 + 1))
        return (s_x2, s_y2)

#Définition des couleurs
class CvCollor():
    __red:int
    __green:int
    __blue:int
    def __init__(this,r,g,b):
        this.__red = r
        this.__green = g
        this.__blue = b
    def get(this):
        return(this.__red,this.__green,this.__blue) 

#Liste des couleurs(Développez votre couleur préférée)
class Clist():
    #Couleur= CvCollor(rouge foncé,vert,Bleu)
    White = CvCollor(255, 255, 255)
    Black = CvCollor(0, 0, 0)
    Green = CvCollor(0, 255, 0)
    Blue = CvCollor(0, 0, 255)
    Red = CvCollor(255, 0, 0) 
    Yellow = CvCollor(255, 255, 0)
    Purple = CvCollor(255, 0, 255)
    Skyblue = CvCollor(0, 255, 255)
    Orange = CvCollor(255, 180, 105)
    Blown = CvCollor(165, 42, 42)
    Pink = CvCollor(255, 0, 165)
    Silver = CvCollor(192, 192, 192)
    Lime = CvCollor(50, 205, 50)
    Virid = CvCollor(0, 137, 107)
    Coblue = CvCollor(0, 71, 171)
    Dblown = CvCollor(81, 31, 9)
    Greeny = CvCollor(17, 69, 20)

class Cvmoveflg():
    up:bool
    down:bool
    left:bool
    right:bool
    def __init__(this,upflg,dwflg,ltflg,rtflg):
        this.up = upflg
        this.down = dwflg
        this.left = ltflg
        this.right = rtflg

class CvFont():
    font:int
    collor:CvCollor
    def __init__(this,name,size,collor):
        this.font = pygame.font.Font(name,size)
        this.collor = collor

    def UpdColor(this,collor):
        this.collor = collor

    def show(this,string,sd,x,y):
        Main.getWndGet().blit(this.font.render(string,sd,this.collor.get()),(x,y))

    def bcshow(this,string,sd,bc,x,y):
        Main.getWndGet().blit(this.font.render(string,sd,this.collor.get(),bc.get()),(x,y))

    def Font(this,collor):
        this.collor = collor
        
if __name__ == "__main__":
    main()


Si vous copiez tout cela

Vous devriez voir un écran rouge avec le titre "vgame" avec x = 931 et y = 810. Si vous le créez désormais, vous pouvez facilement créer des applications et des jeux avec de la musique. Il est recommandé aux débutants du programme de copier et coller. Démarrez le programme maintenant. Une fois que vous avez un script pour créer votre application, lisez la suite.

Un moyen rapide de créer une application

Ouvrez cmd.exe

[cmd.chemin exe]>> cd [chemin pip]
[chemin pip]>> pip install pyinstaller

Frappé pyinstaller etc. sont célèbres Tout d'abord, copiez pyinstaller.exe sur le chemin de l'application cible Ouvrez cmd.exe

[cmd.chemin exe]>> cd [Chemin de l'application souhaitée(En dessous de G)]

Et frappé

[G]>> pyinstaller [main.Renommé de pyw].pyw [skeleton.Renommé de pyw].pyw --onefile --noconsole (--exclude pandas --exclude numpy)

Frappé Ensuite, je pense que [renommé à partir de main.pyw] .spec est créé, alors ajoutez "pygame" à l'élément exclut d'un fichier.

a.datas += Tree("[Chemin Python]/Lib/site-packages/pygame/", prefix= "pygame")
a.datas += Tree("[Chemin Python]/lib/xml/", prefix= "xml")

Après avoir supprimé les dossiers __pycache__ et build et dist, revenez à cmd.exe

[G]>> pyinstaller [main.Renommé de pyw].spec [skeleton.Renommé de pyw].spec

Si vous tapez, l'exe sous dist démarrera correctement à moins que les données externes ne soient lues. S'il a été lu, il réussira s'il est transféré sur dist.

finalement

Je veux utiliser PyOpenGL. Pourtant, je veux écrire beaucoup d'articles.

Recommended Posts

Créer une application en classifiant avec Pygame
Créez des jeux avec Pygame
Créer un environnement avec virtualenv
Créer une API avec Django
Créez une tranche d'âge avec les pandas
Créer une visionneuse de traitement d'image avec PySimpleGUI
Créez rapidement un fichier Excel avec Python #python
Créer un écran de mise à jour avec Django Updateview
Créer une application à l'aide de l'API Spotify
[Python] Créez rapidement une API avec Flask
Générer une instance Excel compatible avec les compléments avec xlwings
Créez une application de mots anglais avec python
Créez un fichier msi évolutif avec cx_Freeze
Créez une application qui devine les étudiants avec Python
Créer un programme académique avec optimisation des combinaisons
Créez une application de composition d'images avec Flask + Pillow
Créez une interface utilisateur de jeu à partir de zéro avec pygame2!
Créer une image avec des caractères avec python (japonais)
Créez une application Hello World avec un seul fichier avec django
Facile à créer une application console Python avec Click
Créez rapidement un serveur API avec Python + Falcon
Créez une application qui saisit, affiche et supprime des formulaires à l'aide de Python / Flask au lieu de DB.
Créer un serveur local GIF animé avec Python + Flask
Procédure de création d'une application avec Django avec Pycharm ~ Préparation ~
Créez un tweet idole avec Keras LSTM (génération de phrases)
Un moyen simple de créer un module d'importation avec jupyter
Créez une application qui devine les étudiants avec la version python-GUI
Créer un nombre aléatoire avec une densité de probabilité arbitraire
Créez un environnement Open AI Gym avec Bash sur Windows 10
J'ai essayé de créer une application OCR avec PySimpleGUI
Créez un environnement pour l'automatisation des tests avec AirtestIDE (Astuces)
Faire une application utilisant tkinter un fichier exécutable avec cx_freeze
Créer un filtre avec scipy
Créez un tableau à deux dimensions en ajoutant une ligne à la fin d'un tableau vide avec numpy
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
Comment convertir un tableau en dictionnaire avec Python [Application]
Créez un environnement pour "Deep Learning from scratch" avec Docker
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Makefile minimal et buildout.cfg pour créer un environnement avec buildout
Créez un exemple de scène semblable à un jeu avec juste le script Blender 2.80
Créons une application qui authentifie OIDC avec Azure AD
Créer une fonction d'authentification à l'aide de django-allauth et CustomUser dans Django
Créer une application Todo avec Django ① Créer un environnement avec Docker
[Python Kivy] Comment créer un fichier exe avec pyinstaller
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
Créez une application qui recherche uniquement à l'aide de l'API de recherche personnalisée Google avec Python 3.3.1 dans Bottle