import pygame
from pygame.locals import *
import time
VERSION = "0.7"
try:
pygame.init()
pygame.font.init()
pygame.display.init()
horloge = pygame.time.Clock()
pygame.display.set_caption('Top Gun 2D')
ecran = pygame.display.set_mode((1280, 720), pygame.FULLSCREEN) #Crée la fenêtre de tracé
pygame.display.flip() #L'affichage devient effectif : l'image est rendue visible.
pygame.key.set_repeat(50, 30) #Au bout de 50ms d'appui sur la touche, python ré-envoie une instruction d'appui sur celle ci, puis toutes les 30ms
#variations de coordonées de 30ms choix excellent qui permet d'éviter de faire ramer le pc et n'est pas trop rapide pour l'oeil, qui voie les bords de l'avion en double sinon.
continuer = 1 #Initialisation des variables
fullscreen = 1
abscisse = 720
ordonnee = 480
tir = 10
tir = pygame.image.load("missile.png")
son_tir = pygame.mixer.Sound("son_tir.ogg")
list_missile=[] # tableau des missiles
fond1 = pygame.image.load('fond.jpg')
fond2 = pygame.image.load('fond.jpg') #charge deux fonds différents : ce procédé est expliqué sur le site de Dorian.
ordonnee_fond1 = 0
ordonnee_fond2 = fond1.get_height() #Permet de déifinir l'ordonnée du fond n°2 en fonction de la hauteur du premier : cela permet de changer l'image de fond sans redéfinir la hauteur du blit dans le script!
chasseur_f14=pygame.image.load("f14.png")
pos_f14 = pygame.Rect(abscisse,ordonnee,100,100)
ecran.blit(chasseur_f14,pos_f14)
while continuer:
pygame.display.flip()
ecran.blit(fond1, (0,ordonnee_fond1))
ecran.blit(fond2, (0,ordonnee_fond2))
ordonnee_fond1 -= 1
ordonnee_fond2 -= 1
if ordonnee_fond1 == -1 * fond1.get_height():
ordonnee_fond1 = ordonnee_fond2 + fond2.get_height()
if fond2 == -1 * fond2.get_height():
ordonnee_fond2 = ordonnee_fond1 + fond1.get_height()
ecran.blit(chasseur_f14,pos_f14)
pygame.display.flip()
# Fait apparaitre les missiles
for missile in list_missile:
missile[2]=missile[2]-5
ecran.blit(missile[0],(missile[1],missile[2]))
# Fait apparaitre les missiles(image)
for event in pygame.event.get():
clav=pygame.key.get_pressed()
if clav[K_ESCAPE] : #Permet de quitter en appuyant sur la croix
continuer = 0
pygame.display.flip()
if clav[K_F10]: #Permet de bassculer l'affichage en fullscreen ou en une fenêtre que l'on peut redimensionner!
if fullscreen == 1:
ecran=pygame.display.set_mode([1280,720],pygame.RESIZABLE)
fullscreen = 0
else :
ecran = pygame.display.set_mode((1280, 720), pygame.FULLSCREEN)
fullscreen = 1
if clav[K_UP] :
ordonnee-=7
if clav[K_DOWN]:
ordonnee+=7
else :
chasseur_f14=pygame.image.load("f14.png")
if clav[K_LEFT]:
abscisse-=7
chasseur_f14=pygame.image.load("f14l.png")
if clav[K_RIGHT]:
abscisse+=7
chasseur_f14=pygame.image.load("f14r.png")
pos_f14 = pygame.Rect(abscisse,ordonnee,40,40)
ecran.blit(chasseur_f14,pos_f14)
pygame.display.flip()
horloge.tick(30) #30 frames par seconde : cela influe sur la vitesse de défilement du fond
if clav [K_SPACE] :
missile=[tir,abscisse,ordonnee] #initialisation du missile
pos_tir = pygame.Rect(abscisse,ordonnee,5,10)
list_missile.append(missile)
pos_tir= Rect.move(pos_tir, 0,0)
ecran.blit(tir,pos_tir)
son_tir.play()
pygame.time.delay(100)
finally:
pygame.quit()
Partager