Compare commits

..

No commits in common. "main" and "e3f9f23cf502162aa2a327efd4818241bd9be22e" have entirely different histories.

14 changed files with 260 additions and 234 deletions

4
.gitignore vendored
View File

@ -1,4 +1,3 @@
# ---> Python
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/
*.py[cod] *.py[cod]
@ -158,5 +157,4 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear # and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder. # option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/ #.idea/

14
.replit Normal file
View File

@ -0,0 +1,14 @@
entrypoint = "main.py"
modules = ["python-3.10"]
audio = true
hidden = [".pythonlibs"]
[nix]
channel = "stable-23_05"
[[ports]]
localPort = 5900
externalPort = 80

View File

@ -1,2 +0,0 @@
# python2dspiel

Binary file not shown.

Binary file not shown.

BIN
generated-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

337
main.py
View File

@ -1,238 +1,117 @@
import pygame import pygame
from pygame.locals import * from pygame.locals import *
from random import randint from random import randint
from pygame.mixer import music #musique LARGEUR = 900
pygame.mixer.init() #initialiser la musique HAUTEUR = 700
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
fond = pygame.sprite.Sprite()
fond.image = pygame.image.load("terre.jpg").convert()
fond.rect = fond.image.get_rect()
fond.rect.x = 55
fond.rect.y = 0
def creer_ananas(pos_x, pos_y):
ananas = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(ananas)
ananas.image = pygame.image.load("ananas.png").convert_alpha()
ananas.image = pygame.transform.scale(ananas.image,[200, 100])
ananas.rect = ananas.image.get_rect()
ananas.rect.x = pos_x
ananas.rect.y = pos_y
return ananas
pygame.init()
clock = pygame.time.Clock()
running = True
avion = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(avion)
avion.image = pygame.image.load("avion.png").convert_alpha()
avion.image = pygame.transform.scale(avion.image,[120, 120])
avion.rect = avion.image.get_rect()
avion.rect.x = 200
avion.rect.y = 400
liste_des_sprites = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(fond)
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(avion)
liste_d_ananas = []
police = pygame.font.Font(None, 25)
texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte)
texte.image = police.render("ALERTE! La planète terre est attaquée par une flotte davions spatiaux!", 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect()
texte.rect.centerx = 360
texte.rect.centery = 30
liste_des_sprites.add(texte)
LARGEUR = 610 #largeur de la fenêtre police = pygame.font.Font(None, 20)
HAUTEUR = 600 #hauteur de la fenêtre texte2 = pygame.sprite.Sprite()
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre texte2.image = police.render("Vous vous trouver dans lengin SU-PER12. Votre mission est déliminer le plus dennemis possible!", 1, (10, 10, 10),(255, 90, 20))
fond = pygame.sprite.Sprite() #créer un sprite pour le fond de la terre texte2.rect = texte2.image.get_rect()
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image de la terre texte2.rect.centerx = 360
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image de la terre texte2.rect.centery = 60
fond.rect.x = 0 #position x de l'image "terre.jpg" liste_des_sprites.add(texte2)
fond.rect.y = 0 #position y de l'image "terre.jpg"
def creer_ananas(pos_x, pos_y): #créer un ananas (adversaire) police = pygame.font.Font(None, 20)
ananas = pygame.sprite.Sprite() #créer un sprite texte3 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(ananas) #initialiser le sprite texte3.image = police.render("Pour ce faire, appuyez sur « espace » pour tirer et bougez la souris pour manoeuvrer votre SU-PER12!", 1, (10, 10, 10),(255, 90, 20))
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image de l'ananas texte3.rect = texte3.image.get_rect()
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image de l'ananas texte3.rect.centerx = 360
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image de l'ananas texte3.rect.centery = 80
ananas.rect.x = pos_x # position x de l'image de l'ananas liste_des_sprites.add(texte3)
ananas.rect.y = pos_y # position y de l'image de l'ananas
return ananas #retourner l'ananas
def tirer_missiles(pos_x, pos_y): #créer un missile police = pygame.font.Font(None, 20)
missiles = pygame.sprite.Sprite() #créer un sprite texte4 = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite texte4.image = police.render("Bonne chance!", 1, (10, 10, 10),(255, 90, 20))
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image du missile texte4.rect = texte4.image.get_rect()
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image du missile texte4.rect.centerx = 360
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image du missile texte4.rect.centery = 100
missiles.rect.x = pos_x # position x de l'image du missile liste_des_sprites.add(texte4)
missiles.rect.y = pos_y # position y de l'image du missile
return missiles #retourner le missile
liste_sprites_ananas = pygame.sprite.LayeredUpdates() #créer une liste pour les ananas police = pygame.font.Font(None, 20)
liste_de_missiles = [] #créer une liste vide pour stocker les missiles texte5 = pygame.sprite.Sprite()
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe pour stocker les missiles texte5.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20))
texte5.rect = texte5.image.get_rect()
texte5.rect.centerx = 360
texte5.rect.centery = 1500
liste_des_sprites.add(texte5)
pygame.init() #initialiser pygame gameover = False
clock = pygame.time.Clock() #créer un horloge pour contrôler la vitesse de rafraîchissement de la fenêtre score = 0
running = True #définir la variable running while running:
liste_des_sprites.draw(fenetre)
avion = pygame.sprite.Sprite() #créer un sprite pour l'avion liste_sprites_ananas.draw(fenetre)
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite de l'avion for event in pygame.event.get():
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image de l'avion if event.type == pygame.QUIT:
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image de l'avion
avion.rect = avion.image.get_rect() #obtenir les coordonnées de l'image de l'avion
avion.rect.x = 200 #position x de l'image de l'avion
avion.rect.y = 450 #position y de l'image de l'avion
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe pour stocker les sprites
liste_des_sprites.add(fond) #ajouter le fond à la liste des sprites
liste_des_sprites.add(avion) #ajouter l'avion à la liste des sprites
liste_d_ananas = [] #créer une liste vide pour stocker les ananas
gameover = False #définir la variable gameover
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non: ")) #demander à l'utilisateur s'il veut sauver la Terre
sauver = (intro == 1)
if sauver == True: #si l'utilisateur veut sauver la Terre
print("ALERTE! La planète Terre est attaquée par une flotte davions spatiaux! Vous vous trouvez dans lengin SU-PER12. Votre mission est déliminer le plus dennemis possible! En éliminant les adversaires, vous gagnez 10 points. La planète sera sauvée, lorsque vous aurez atteind les 100 points! Pour ce faire, appuyez sur votre souris pour tirer et manoeuvrez-la en la pour bouger votre SU-PER12. Bonne chance!") #afficher un message
music = pygame.mixer.music.load("musique fond.mp3")
#charger la musique de fond correspondant à sauver == True
pygame.mixer.music.play(-1) #jouer la musique de fond en boucle
pygame.mixer.music.set_volume(0.3) # changer le volume de la musique de fond
else: #si l'utilisateur ne veut pas sauver la Terre
gameover == True #définir la variable gameover
print("Dommage, la fin du Monde est proche...")
avion.kill() # enlever l'avion de la liste des sprites (et donc de la fenetre)
liste_sprites_missiles.empty() #enlever tout les missiles du groupe
music = pygame.mixer.music.load("invasion musique.mp3") #charger la musique de fond correspondant à sauver == False
pygame.mixer.music.play(1) #jouer la musique de fond qu'une seule fois
police = pygame.font.Font(None, 30) #créer une police
texte= pygame.sprite.Sprite() #créer un sprite
texte.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour annoncer l'invasion
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 20 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
rapidite_ananas = 4 # mouvement de l'ananas (4 pixels par refraichissement de la fenêtre))
delay = 10 #définir le délai (10sec) des ananas pour que l'utilisateur puisse lire la consigne
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son pour les missiles
timer = 0 #initialiser le timer
score = 0 #initialiser le score
while running: #tant que running est vrai
if sauver == False: #si l'utilisateur choisit l'sauver == False
timer += 1 #incrément du timer à chaque phase d'exécution
if timer >= 30 * 60: #si le timer est plus grand ou égal à 30 sec * 60 cadres par sec
gameover = True #définir gameover comme True
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover
pygame.mixer.music.play(1)#jouer la musique du gameover qu'une seule fois
police = pygame.font.Font(None, 50) #créer une police pour le texte
texte = pygame.sprite.Sprite() #créer un texte pour le gameover
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour le gameover
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
texte = pygame.sprite.Sprite() #créer un second message
texte.image = police.render("INVASION ABOUTIE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer le joueur de l'invasion
texte.rect = texte.image.get_rect() #obtenir les coordonnées de l'image
texte.rect.centerx = 310
texte.rect.centery = 240
liste_des_sprites.add(texte) #ajouter le texte
liste_des_sprites.draw(fenetre) #dessiner les sprites
liste_sprites_ananas.draw(fenetre) #dessiner les ananas
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
for event in pygame.event.get(): #pour chaque événement
if event.type == pygame.QUIT: #si l'événement est quitter
running = False running = False
if event.type == MOUSEMOTION: #si l'événement est la position de la souris if event.type == MOUSEMOTION:
avion.rect.x = event.pos[0] avion.rect.x = event.pos[0]
if event.type == MOUSEBUTTONDOWN: #si l'événement est le clic de la souris keys = pygame.key.get_pressed()
if gameover == False and sauver == True: #if gameover is not true if keys[pygame.K_SPACE]:
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile liste_des_sprites.remove(texte)
pygame.mixer.Sound.play(missiles_sound) #jouer le son du tir if gameover == False:
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste nombre_aleatoire = randint(0, 100)
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe if nombre_aleatoire == 100:
position_x_aleatoire = randint(0, LARGEUR - 60)
if gameover == False: #si le jeu n'est pas terminé nouvel_ananas = creer_ananas(position_x_aleatoire, -100)
if score < 100: # only spawn ananas if score is less than 100 liste_d_ananas.append(nouvel_ananas)
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire pour contrôler la fréquence des ananas liste_sprites_ananas.add(nouvel_ananas)
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
position_x_aleatoire = randint(0, LARGEUR - 60) #obtenir une position x aléatoire pour l'ananas
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
nouvel_ananas.delay_timer = delay * 60 #définir le délai
for ananas in liste_d_ananas: for ananas in liste_d_ananas:
if ananas.delay_timer > 0: #si le délai est supérieur à 0 ananas.rect.y += 5
ananas.delay_timer -= 1 #soustraire le délai d'une ananas if ananas.rect.colliderect(avion):
else: print("COLLISION")
ananas.rect.y += rapidite_ananas #ajouter la vitesse à la position y de l'ananas score += 1
if ananas.rect.colliderect(avion) and sauver == True: #si l'ananas touche l'avion ET si sauver == True liste_d_ananas.remove(ananas)
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.") #message pour informer la mort de l'utilisateur ananas.kill()
avion.kill() #enlever l'avion de la liste des sprites (et donc de la fenetre)) if ananas.rect.y > HAUTEUR:
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover gameover = True
pygame.mixer.music.play(1) #jouer la musique du gameover qu'une seule fois police = pygame.font.Font(None, 36)
texte = pygame.sprite.Sprite()
police = pygame.font.Font(None, 50) #créer une police pour le texte pygame.sprite.Sprite.__init__(texte)
texte = pygame.sprite.Sprite() #créer un texte texte.image = police.render("Gameover. L'ennemi est entré dans notre atmosphère! Réessaye de tuer tout les ennemis! Score : "+ str(score), 1, (10, 10, 10),(255, 90, 20))
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20)) texte.rect = texte.image.get_rect()
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte texte.rect.centerx = 360
texte.rect.centerx = 310 #position x du texte texte.rect.centery = 450
texte.rect.centery = 200 #position y du texte liste_des_sprites.add(texte)
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites pygame.display.flip()
fenetre.fill((0,0,0))
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste clock.tick(60)
ananas.kill() #supprimer l'ananas (de la fenetre) pygame.quit()
gameover = True #définir la variable gameover comme vrai
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse l'hauteur de la fenêtre
if sauver == False: #si l'utilisateur a choisi de ne pas sauver la Terre
gameover = False #définir la variable gameover comme faux
else:
gameover = True #définir la variable gameover comme vrai
police = pygame.font.Font(None, 36)
texte1 = pygame.sprite.Sprite() #créer un texte du gameover
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20)) #créer un texte du gameover
texte1.rect = texte1.image.get_rect() #obtenir les coordonnées du texte
texte1.rect.centerx = 310 #position x du texte
texte1.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte1) #ajouter le texte1 à la liste des sprites
police = pygame.font.Font(None, 36) #créer une police pour le texte
texte22 = pygame.sprite.Sprite() #créer un texte pour informer de l'invasion des adversaires
pygame.sprite.Sprite.__init__(texte22) #initialiser le sprite
texte22.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20)) #créer un texte pour informer de l'invasion des adversaires
texte22.rect = texte22.image.get_rect() #obtenir les coordonnées du texte
texte22.rect.centerx = 310 #position x du texte
texte22.rect.centery = 250 #position y du texte
liste_des_sprites.add(texte22) #ajouter le texte22 à la liste des sprites
police = pygame.font.Font(None, 36) #créer une police pour le texte
texte33 = pygame.sprite.Sprite() #créer un texte motivant l'utilisateur d'une (nouvelle) mission
pygame.sprite.Sprite.__init__(texte33) #initialiser le sprite
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20)) #créer un texte motivant l'utilisateur d'une (nouvelle) mission
texte33.rect = texte33.image.get_rect() #obtenir les coordonnées du texte
texte33.rect.centerx = 310 #position x du texte
texte33.rect.centery = 300 #position y du texte
liste_des_sprites.add(texte33) #ajouter le texte33 à la liste des sprites
for missiles in liste_de_missiles: #pour chaque missile dans la liste des missiles
missiles.rect.y -= 10 #soustraire 10 à la position y du missile (10 pixels, le missile monte dans l'écran)
if missiles.rect.y <= 0: #si la position y du missile est inférieure ou égale à 0
liste_de_missiles.remove(missiles) #retirer le missile de la liste
missiles.kill() #supprimer le missile (de la fenetre)
else:
for ananas in liste_d_ananas: #pour chaque ananas dans la liste des ananas
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste des ananas
ananas.kill() #supprimer l'ananas (de la fenetre)
liste_de_missiles.remove(missiles) #retirer le missile de la liste des missiles
missiles.kill() #supprimer le missile (de la fenetre)
score += 10 # augmenter le score de l'utilisateur de 10 points
print(f"Score:", score) # print le score
texte_score = police.render("Score: " + str(score), 1, (10, 10, 10), (255, 90, 20)) #actualiser le texte du score
texte_score_rect = texte_score.get_rect() #obtenir les coordonnées du texte
texte_score_rect.topleft = (10, 10) #position du texte
if score >= 100: #vérifier le jeu pour une victoire
gameover = True #définir la variable gameover comme vrai
music = pygame.mixer.music.load("victoire.mp3") #charger la musique de la victoire
pygame.mixer.music.play(1) #jouer la musique de la victoire qu'une seule fois
police = pygame.font.Font(None, 50) #créer une police pour le texte
texte = pygame.sprite.Sprite() #créer un texte pour informer de la victoire
texte.image = police.render("VICTOIRE!", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer de la victoire
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
texte = pygame.sprite.Sprite() #créer un second texte pour informer de la victoire
texte.image = police.render("LA TERRE EST SAUVÉE!", 1, (10, 10, 10),(255, 90, 20)) #créer un second texte pour informer de la victoire
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 235 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
pygame.display.flip() #mettre à jour la fenêtre
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire (derrière la terre)
clock.tick(50) #mettre le nombre de cadres par sec
pygame.quit() #quitter pygame

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

99
poetry.lock generated Normal file
View File

@ -0,0 +1,99 @@
# This file is automatically @generated by Poetry 1.5.4 and should not be changed by hand.
[[package]]
name = "dearpygui"
version = "1.10.1"
description = "DearPyGui: A simple Python GUI Toolkit"
optional = false
python-versions = ">=3.7"
files = [
{file = "dearpygui-1.10.1-cp310-cp310-macosx_10_6_x86_64.whl", hash = "sha256:ef1f1a8dbbd2dac9ea4fbf9d37e7812741e9a33de03ce385e398258750966a85"},
{file = "dearpygui-1.10.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:7dc32b229d89b10ec4f647414738783afc2d6aa09c28c9f7384b07023b6ee261"},
{file = "dearpygui-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:8047f4ac06fb774c1335a98d3dbb47337b07e17629a85789740298a61e6ae999"},
{file = "dearpygui-1.10.1-cp311-cp311-macosx_10_6_x86_64.whl", hash = "sha256:e87016bdd388d0e33080cd2033047f6c58df7808e1c3e14a1b0d736b2184e1ce"},
{file = "dearpygui-1.10.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:ac4e1cb01cd53490df20365645fbd0296bac093b8a415c805c18cad0aa85cac6"},
{file = "dearpygui-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:1711a5cc991eaa6bc8a7a3cadb3845236c16b6753dc46b2fd1f4285db57d998e"},
{file = "dearpygui-1.10.1-cp312-cp312-macosx_10_6_x86_64.whl", hash = "sha256:e506507ee5344bb8d059d333c4dd77cd61bb4850f66fc4b5508ffa4f456f5a98"},
{file = "dearpygui-1.10.1-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:ed0d58e057636c4b79aee14d09b78042b122f42a6bef08d9901239de3361449d"},
{file = "dearpygui-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:5350d2a03da789684fcd384d7ee9e0ea029ecf134bef30d134c439d35c9d60b4"},
{file = "dearpygui-1.10.1-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:d36b16afd0dd22674a59195e2ba37b787ea18bfb4ca96c460d6b7795f2c56980"},
{file = "dearpygui-1.10.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2d94b23bed91e121ad4556b811fe164598c5b4dc94a19e3195bb70a4ff632759"},
{file = "dearpygui-1.10.1-cp37-cp37m-win_amd64.whl", hash = "sha256:d1b877a147971e062d3c006027e880fd2b88dad9d198620f12b8407dddb1f795"},
{file = "dearpygui-1.10.1-cp38-cp38-macosx_10_6_x86_64.whl", hash = "sha256:0e30634f1f8c13994ec59c58048e97103e672f792145a57aab4a7c39c6445e5e"},
{file = "dearpygui-1.10.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:d2cb73d22ec6c186c039c60c22efa5fc94f0562793bf20996d9eeae5ee601d55"},
{file = "dearpygui-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:2a8a1305ad6bfbc6f46968067b7f02d8404f2df21a13627e8c93cdabbb30f37b"},
{file = "dearpygui-1.10.1-cp39-cp39-macosx_10_6_x86_64.whl", hash = "sha256:a2e722e5b1fb8ab8d25e3ed82a790778849c1c66a522a327a73e25e218f98873"},
{file = "dearpygui-1.10.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:358a221d5f53b584e7bbc76e2ad7ca012991debdd74ea3a6cfc8e2ed0ea51c92"},
{file = "dearpygui-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:5ccb75b5377e5d4fcd6358ac2164418301b2747a78fee55422e3995d167d364a"},
]
[[package]]
name = "pygame"
version = "2.5.2"
description = "Python Game Development"
optional = false
python-versions = ">=3.6"
files = [
{file = "pygame-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a0769eb628c818761755eb0a0ca8216b95270ea8cbcbc82227e39ac9644643da"},
{file = "pygame-2.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed9a3d98adafa0805ccbaaff5d2996a2b5795381285d8437a4a5d248dbd12b4a"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30d1618672a55e8c6669281ba264464b3ab563158e40d89e8c8b3faa0febebd"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39690e9be9baf58b7359d1f3b2336e1fd6f92fedbbce42987be5df27f8d30718"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03879ec299c9f4ba23901b2649a96b2143f0a5d787f0b6c39469989e2320caf1"},
{file = "pygame-2.5.2-cp310-cp310-win32.whl", hash = "sha256:74e1d6284100e294f445832e6f6343be4fe4748decc4f8a51131ae197dae8584"},
{file = "pygame-2.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:485239c7d32265fd35b76ae8f64f34b0637ae11e69d76de15710c4b9edcc7c8d"},
{file = "pygame-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34646ca20e163dc6f6cf8170f1e12a2e41726780112594ac061fa448cf7ccd75"},
{file = "pygame-2.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3b8a6e351665ed26ea791f0e1fd649d3f483e8681892caef9d471f488f9ea5ee"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc346965847aef00013fa2364f41a64f068cd096dcc7778fc306ca3735f0eedf"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35632035fd81261f2d797fa810ea8c46111bd78ceb6089d52b61ed7dc3c5d05f"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e24d05184e4195fe5ebcdce8b18ecb086f00182b9ae460a86682d312ce8d31f"},
{file = "pygame-2.5.2-cp311-cp311-win32.whl", hash = "sha256:f02c1c7505af18d426d355ac9872bd5c916b27f7b0fe224749930662bea47a50"},
{file = "pygame-2.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6d58c8cf937815d3b7cdc0fa9590c5129cb2c9658b72d00e8a4568dea2ff1d42"},
{file = "pygame-2.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1a2a43802bb5e89ce2b3b775744e78db4f9a201bf8d059b946c61722840ceea8"},
{file = "pygame-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1c289f2613c44fe70a1e40769de4a49c5ab5a29b9376f1692bb1a15c9c1c9bfa"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:074aa6c6e110c925f7f27f00c7733c6303407edc61d738882985091d1eb2ef17"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe0228501ec616779a0b9c4299e837877783e18df294dd690b9ab0eed3d8aaab"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31648d38ecdc2335ffc0e38fb18a84b3339730521505dac68514f83a1092e3f4"},
{file = "pygame-2.5.2-cp312-cp312-win32.whl", hash = "sha256:224c308856334bc792f696e9278e50d099a87c116f7fc314cd6aa3ff99d21592"},
{file = "pygame-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:dd2d2650faf54f9a0f5bd0db8409f79609319725f8f08af6507a0609deadcad4"},
{file = "pygame-2.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9b30bc1220c457169571aac998e54b013aaeb732d2fd8744966cb1cfab1f61d1"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78fcd7643358b886a44127ff7dec9041c056c212b3a98977674f83f99e9b12d3"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cf093a51cb294ede56c29d4acf41538c00f297fcf78a9b186fb7d23c0577b6"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fe323acbf53a0195c8c98b1b941eba7ac24e3e2b28ae48e8cda566f15fc4945"},
{file = "pygame-2.5.2-cp36-cp36m-win32.whl", hash = "sha256:5697528266b4716d9cdd44a5a1d210f4d86ef801d0f64ca5da5d0816704009d9"},
{file = "pygame-2.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edda1f7cff4806a4fa39e0e8ccd75f38d1d340fa5fc52d8582ade87aca247d92"},
{file = "pygame-2.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9bd738fd4ecc224769d0b4a719f96900a86578e26e0105193658a32966df2aae"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30a8d7cf12363b4140bf2f93b5eec4028376ca1d0fe4b550588f836279485308"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc12e4dea3e88ea8a553de6d56a37b704dbe2aed95105889f6afeb4b96e62097"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b34c73cb328024f8db3cb6487a37e54000148988275d8d6e5adf99d9323c937"},
{file = "pygame-2.5.2-cp37-cp37m-win32.whl", hash = "sha256:7d0a2794649defa57ef50b096a99f7113d3d0c2e32d1426cafa7d618eadce4c7"},
{file = "pygame-2.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:41f8779f52e0f6e6e6ccb8f0b5536e432bf386ee29c721a1c22cada7767b0cef"},
{file = "pygame-2.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:677e37bc0ea7afd89dde5a88ced4458aa8656159c70a576eea68b5622ee1997b"},
{file = "pygame-2.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47a8415d2bd60e6909823b5643a1d4ef5cc29417d817f2a214b255f6fa3a1e4c"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ff21201df6278b8ca2e948fb148ffe88f5481fd03760f381dd61e45954c7dff"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29a84b2e02814b9ba925357fd2e1df78efe5e1aa64dc3051eaed95d2b96eafd"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d78485c4d21133d6b2fbb504cd544ca655e50b6eb551d2995b3aa6035928adda"},
{file = "pygame-2.5.2-cp38-cp38-win32.whl", hash = "sha256:d851247239548aa357c4a6840fb67adc2d570ce7cb56988d036a723d26b48bff"},
{file = "pygame-2.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:88d1cdacc2d3471eceab98bf0c93c14d3a8461f93e58e3d926f20d4de3a75554"},
{file = "pygame-2.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4f1559e7efe4efb9dc19d2d811d702f325d9605f9f6f9ececa39ee6890c798f5"},
{file = "pygame-2.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cf2191b756ceb0e8458a761d0c665b0c70b538570449e0d39b75a5ba94ac5cf0"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cf2257447ce7f2d6de37e5fb019d2bbe32ed05a5721ace8bc78c2d9beaf3aee"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cbbfaba2b81434d62631d0b08b85fab16cf4a36e40b80298d3868927e1299"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:daca456d5b9f52e088e06a127dec182b3638a775684fb2260f25d664351cf1ae"},
{file = "pygame-2.5.2-cp39-cp39-win32.whl", hash = "sha256:3b3e619e33d11c297d7a57a82db40681f9c2c3ae1d5bf06003520b4fe30c435d"},
{file = "pygame-2.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:1822d534bb7fe756804647b6da2c9ea5d7a62d8796b2e15d172d3be085de28c6"},
{file = "pygame-2.5.2-pp36-pypy36_pp73-win32.whl", hash = "sha256:e708fc8f709a0fe1d1876489345f2e443d47f3976d33455e2e1e937f972f8677"},
{file = "pygame-2.5.2-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c13edebc43c240fb0532969e914f0ccefff5ae7e50b0b788d08ad2c15ef793e4"},
{file = "pygame-2.5.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:263b4a7cbfc9fe2055abc21b0251cc17dea6dff750f0e1c598919ff350cdbffe"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e58e2b0c791041e4bccafa5bd7650623ba1592b8fe62ae0a276b7d0ecb314b6c"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0bd67426c02ffe6c9827fc4bcbda9442fbc451d29b17c83a3c088c56fef2c90"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dcff6cbba1584cf7732ce1dbdd044406cd4f6e296d13bcb7fba963fb4aeefc9"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ce4b6c0bfe44d00bb0998a6517bd0cf9455f642f30f91bc671ad41c05bf6f6ae"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68c4e8e60b725ffc7a6c6ecd9bb5fcc5ed2d6e0e2a2c4a29a8454856ef16ad63"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f3849f97372a3381c66955f99a0d58485ccd513c3d00c030b869094ce6997a6"},
{file = "pygame-2.5.2.tar.gz", hash = "sha256:c1b89eb5d539e7ac5cf75513125fb5f2f0a2d918b1fd6e981f23bf0ac1b1c24a"},
]
[metadata]
lock-version = "2.0"
python-versions = ">=3.10.0"
content-hash = "5e87325b3835bfcefdcd3a01afb512f9063d24ed31ebd7620dcf328c01c74d86"

24
pyproject.toml Normal file
View File

@ -0,0 +1,24 @@
[tool.poetry]
name = "python-template"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = ">=3.10.0"
pygame = "^2.1.2"
dearpygui = "^1.6.2"
[tool.pyright]
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md
useLibraryCodeForTypes = true
exclude = [".cache"]
[tool.ruff]
# https://beta.ruff.rs/docs/configuration/
select = ['E', 'W', 'F', 'I', 'B', 'C4', 'ARG', 'SIM']
ignore = ['W291', 'W292', 'W293']
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

14
replit.nix Normal file
View File

@ -0,0 +1,14 @@
{ pkgs }: {
deps = [
pkgs.portmidi
pkgs.pkg-config
pkgs.libpng
pkgs.libjpeg
pkgs.freetype
pkgs.fontconfig
pkgs.SDL2_ttf
pkgs.SDL2_mixer
pkgs.SDL2_image
pkgs.SDL2
];
}

Binary file not shown.