#!/usr/bin/env python3
#!coding: utf-8
"""
On crée des images, et on les blitte (blit = dessiner).
Plus d'infos [ici](http://programarcadegames.com/index.php?chapter=bitmapped_graphics_and_sound&lang=fr).
Attention aux images tournées, leur taille change.
Essayez de faire pygame.draw.rect(ecran, rouge, [0,0,image_perso_tournee.get_width(), image_perso_tournee.get_height()], 1)
Question : comment faire pour dessiner une image telle sorte que son centre soit en 200,300 ?
Certaines images ne gèrent pas la transparence, cependant en écrivant
image_perso.set_colorkey(noir)
on lui indique la couleur qui doit devenir transparente à l'affichage
"""
from __future__ import print_function, division
import pygame
pygame.init()
taille = [700, 500]
ecran = pygame.display.set_mode(taille)
clock = pygame.time.Clock()
noir = [0,0,0]
rouge = [255,0,0]
blanc = [255,255,255]
# on charge l'image
image_perso = pygame.image.load('player.png').convert_alpha() # Téléchargez l'image ici
# image_perso est une "surface de pixels"
# convert_alpha va garder la transparence
# on peut savoir sa taille
print("Taille :", image_perso.get_width(), image_perso.get_height())
# ... la redimensionner
image_perso_petite = pygame.transform.smoothscale(image_perso, [32,32])
# ... ou la tourner, et facultativement la redimensionner d'un certain facteur
image_perso_tournee = pygame.transform.rotozoom(image_perso, 30, 1) # 30 degrés, taille gardée (x1)
ma_position = 10
fini = 0
while fini == 0:
for event in pygame.event.get():
if event.type == pygame.QUIT:
fini = 1
ma_position = ma_position + 2
# dessin
ecran.fill(blanc)
# on peut "blitter" une image sur n'importe quelle surface, comme l'écran, ou une autre image
ecran.blit(image_perso, [ma_position, 200])
ecran.blit(image_perso_tournee, [0, 0])
pygame.display.flip()
clock.tick(60)
pygame.quit()