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.
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).
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.
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()
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.
Ö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.
Ich möchte PyOpenGL verwenden. Trotzdem möchte ich viele Artikel schreiben.
Recommended Posts