[PYTHON] Erstellen Sie eine Anwendung, indem Sie mit Pygame klassifizieren

Was ist Python?

Eine vielseitige Sprache, die fast alles außer Systemsoftware (eingebettete Software) kann. [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) Anwendungen und [AI](https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5 % E8% 83% BD) soll sehr gut darin sein.

Was ist Klassifizierung?

Wie erstelle ich eine Vorlage namens class und erstelle eine echte Sache namens Instanz? Es ist in vielen Sprachen wie C ++, C #, Java und Python implementiert, und Sie können Anwendungen erstellen, die leicht zu sehen sind. Weitere Informationen finden Sie unter Objektorientiert (https://en.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF% Bitte lesen Sie E3% 83% 88% E6% 8C% 87% E5% 90% 91).

Was ist Pygame?

Eine Sammlung plattformübergreifender Python-Module für die Erstellung von Videospielen, einschließlich einer Bibliothek für die Arbeit mit Computergrafiken und Audio in Python. pygame basiert auf der SDL-Bibliothek und ermöglicht die Entwicklung von Computerspielen in Echtzeit ohne die Verwendung von Mechanismen auf niedriger Ebene wie der C-Sprache. Dies basiert auf der Annahme, dass die meisten rechenintensiven Funktionen (hauptsächlich Grafikverarbeitung) von der Spielelogik selbst getrennt werden können, wodurch Hochsprachen wie Python für die Spieleentwicklung verwendet werden können. Es gibt. Bitte lesen Sie PYGAME für Details.

Beispielskript

skeleton.pyw


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

class CVak:
    #Unterleiste*Privat um 2
    #__RenderName = None
    #__Scene = None
    #__FULLNESS = (22222,)Ständige Erklärung(Kapital Taple)Zugang ist das.__FULLNESS[0]

    #Konstrukteur(Klasseninitialisierung)
    def __init__(this):#Dieser Teil wird allgemein Selbst oder dies genannt
        #Zielerstellung rendern
        #exp/this(self).__RenderName = main.CvRender("Data\\name.png ",posx,posy)
        #this.__Scene = CvScene()
        pass#Keine anonymen Funktionen wie C erforderlich, die nichts bewirken<-Der Dolmetscher überspringt es.

    #Initialisierungsprozess(jedes Mal)
    def init(this):
        return

    #Aktualisierungsprozess bei Eingabe eines Schlüssels
    def UpdDwKey(this,key):
        #if key == K_Up:
        return

    #Aktualisieren Sie die Verarbeitung zum Zeitpunkt der Schlüsselausgabe
    def UpdUpKey(this,key):
        return

    #Mauskoordinaten abrufen
    def MousePos(this,x,y):
        return

    #Aktualisierungsprozess
    def Update(this):
        return

    #Zeichenprozess
    def Draw(this):
        #exp/this.__RenderName.Draw()
        return

    #Pygame zur Verarbeitung der Musikwiedergabe.Mischersystem
    def Music(this):
        return

    #Spielschleife
    def GameLoop(this):
        if(False):#Wird nicht aktiviert
            this.init()
        this.Update()
        #Farbausgabe auf dem Bildschirm
        main.Main.Drawwnd(main.Clist.Red.get())
        this.Draw()
        this.Music()
        pass

    #Verarbeitung beenden
    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:
    #Statische Variablen
    #__SCRFLG = ((pygame.OPENGL|pygame.DOUBLEBUF),)Wenn Sie 3D brauchen
    __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
        
#Hauptfunktion
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():

    #Breite in Posz setzen
    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):
        """Koordinatenberechnung auf 2D aus 3D-Koordinaten"""
        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):
        """Größenberechnung in 2D aus 3D-Koordinaten"""
        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)

#Farbdefinition
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) 

#Farbliste(Erweitern Sie Ihre Lieblingsfarbe)
class Clist():
    #Farbe= CvCollor(tiefrot,Grün,Blau)
    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()


Wenn Sie das Ganze kopieren

Sie sollten einen roten Bildschirm mit dem Titel "vgame" mit x = 931 und y = 810 sehen. Wenn Sie es von nun an erstellen, können Sie problemlos Anwendungen und Spiele mit Musik erstellen. Es wird empfohlen, dass Programmanfänger kopieren und einfügen. Starten Sie jetzt das Programm. Wenn Sie ein Skript zum Erstellen Ihrer Anwendung haben, lesen Sie weiter.

Eine schnelle Möglichkeit, eine Anwendung zu erstellen

Öffnen Sie cmd.exe

[cmd.exe Pfad]>> cd [Pip-Pfad]
[Pip-Pfad]>> pip install pyinstaller

Schlagen pyinstaller etc. sind berühmt Kopieren Sie zunächst pyinstaller.exe in den Pfad der Zielanwendung Öffnen Sie cmd.exe

[cmd.exe Pfad]>> cd [Pfad der gewünschten Anwendung(Unterhalb von G.)]

Und getroffen

[G]>> pyinstaller [main.Von pyw umbenannt].pyw [skeleton.Von pyw umbenannt].pyw --onefile --noconsole (--exclude pandas --exclude numpy)

Schlagen Dann denke ich, dass [umbenannt von main.pyw] .spec erstellt wird, also füge "pygame" zum Ausschlusselement von a hinzu.

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

Kehren Sie nach dem Löschen des __pycache__ und dem Erstellen und distieren von Ordnern zu cmd.exe zurück

[G]>> pyinstaller [main.Von pyw umbenannt].spec [skeleton.Von pyw umbenannt].spec

Wenn Sie eingeben, wird die exe unter dist erfolgreich gestartet, sofern die externen Daten nicht gelesen werden. Wenn es gelesen wurde, wird es erfolgreich sein, wenn es dist gebracht wird.

Schließlich

Ich möchte PyOpenGL verwenden. Trotzdem möchte ich viele Artikel schreiben.

Recommended Posts

Erstellen Sie eine Anwendung, indem Sie mit Pygame klassifizieren
Erstelle Spiele mit Pygame
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie eine API mit Django
Erstellen Sie eine Altersgruppe mit Pandas
Erstellen Sie mit PySimpleGUI einen Bildverarbeitungs-Viewer
Erstellen Sie schnell eine Excel-Datei mit Python #python
Erstellen Sie mit Django Updateview einen Update-Bildschirm
Erstellen Sie eine Anwendung mit der Spotify-API
[Python] Erstellen Sie schnell eine API mit Flask
Generieren Sie eine add-in-fähige Excel-Instanz mit xlwings
Erstellen Sie eine englische Wort-App mit Python
Erstellen Sie mit cx_Freeze eine aktualisierbare MSI-Datei
Erstellen Sie eine App, die Schüler mit Python errät
Erstellen Sie ein akademisches Programm mit Kombinationsoptimierung
Erstellen Sie eine Bildkompositions-App mit Flask + Pillow
Erstelle mit pygame2 eine neue Benutzeroberfläche!
Erstellen Sie ein Bild mit Zeichen mit Python (Japanisch)
Erstellen Sie mit Django eine Hallo-Welt-Anwendung mit nur einer Datei
Erstellen Sie einfach eine Python-Konsolenanwendung mit Click
Erstellen Sie schnell einen API-Server mit Python + Falcon
Erstellen Sie eine Anwendung, die Formulare mithilfe von Python / Flask anstelle von DB eingibt, anzeigt und löscht.
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
Verfahren zum Erstellen einer Anwendung mit Django mit Pycharm ~ Vorbereitung ~
Machen Sie einen idolartigen Tweet mit Keras LSTM (Satzgenerierung)
Eine einfache Möglichkeit, ein Importmodul mit jupyter zu erstellen
Erstellen Sie eine App, die Schüler mit der Python-GUI-Version errät
Erstellen Sie eine Zufallszahl mit einer beliebigen Wahrscheinlichkeitsdichte
Erstellen Sie eine Open AI Gym-Umgebung mit Bash unter Windows 10
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen
Erstellen Sie mit AirtestIDE eine Umgebung für die Testautomatisierung (Tipps)
Erstellen Sie mit tkinter eine Anwendung mit cx_freeze zu einer ausführbaren Datei
Erstellen Sie einen Filter mit scipy
Erstellen Sie ein zweidimensionales Array, indem Sie am Ende eines leeren Arrays mit numpy eine Zeile hinzufügen
Erstellen Sie eine Web-App, die Zahlen mit einem neuronalen Netzwerk erkennt
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Erstellen Sie LCD-Spiele (16x2) mit Raspberry Pi und Python
Minimales Makefile und buildout.cfg, um eine Umgebung mit buildout zu erstellen
Erstellen Sie mit dem Blender 2.80-Skript eine beispielhafte spielähnliche Phase
Erstellen wir eine App, die OIDC mit Azure AD authentifiziert
Erstellen Sie eine Authentifizierungsfunktion mit django-allauth und CustomUser in Django
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
[Python Kivy] So erstellen Sie mit pyinstaller eine exe-Datei
Ich habe versucht, einen Artikel mit SQL Alchemy auf Wiki.js zu erstellen
Erstellen Sie eine Anwendung, die nur mit der Google Custom Search-API mit Python 3.3.1 in Bottle sucht