1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #coding: utf8
from PySFML import sf
import config as cfg
def dessinerFenetre(fenetre,elements):
""" Fonction qui prend en paramètre ne liste elements d'objets à afficher
afficher sur l'objet fenetre """
fenetre.Clear(sf.Color.Black)
for i in elements:
fenetre.Draw(i)
fenetre.Display()
# On va créer un objet fenetre en mettant une limite de FPS et une certaine définition
fenetre = sf.RenderWindow(sf.VideoMode(cfg.RESOLUTION[0],cfg.RESOLUTION[1],32), "Arkuria", sf.Style.Close)
fenetre.SetFramerateLimit(60)
IBackground = sf.Image()
IBackground.LoadFromFile("default.png") #On charge le background qu'on met dans un objet image créé précédemment
background = sf.Sprite(IBackground) #On met l'image dans un sprite (les images ne sont pas affichagle tel quel
vue = sf.View() #On crée un objet View (fonctionnement expliqué en abs du code
vue.SetHalfSize(cfg.RESOLUTION[0]/2,cfg.RESOLUTION[1]/2) #on définit le centre de la view
vue.SetCenter(1500,1050) #On définit le nombre de pixel de l'image qui va devoir être affiché
fenetre.SetView(vue) #on applique la vue à notre fenetre
while fenetre.IsOpened():
EventHandler = sf.Event()
while fenetre.GetEvent(EventHandler):
""" Boucle d'évenement qui en fonction de l'appui sur les touches Z,Q,S ou D, déplace le
fond d'écran afin de donner l'impression que le personnage bouge. Pour cela, on déplace la vue
soit de 70px en hateur par pas de 7px, soit de 100px en largeur par pas de 10px (ce qui n'est pas énorme).
On fait à chaque fois appel à la fonction dessiner fenetre ci-dessus pour rafraichir la fenetre """
if EventHandler.Type == sf.Event.Closed:
fenetre.Close()
if EventHandler.Type == sf.Event.KeyPressed:
if EventHandler.Key.Code == sf.Key.Escape:
fenetre.Close()
if EventHandler.Key.Code == sf.Key.Z:
for i in range(10):
vue.Move(0,-7)
dessinerFenetre(fenetre,[background])
if EventHandler.Key.Code == sf.Key.S:
for i in range(10):
vue.Move(0,7)
dessinerFenetre(fenetre,[background])
if EventHandler.Key.Code == sf.Key.Q:
for i in range(10):
vue.Move(-10,0)
dessinerFenetre(fenetre,[background])
if EventHandler.Key.Code == sf.Key.D:
for i in range(10):
vue.Move(10,0)
dessinerFenetre(fenetre,[background])
dessinerFenetre(fenetre,[background]) |
Partager