#pygame5_clavier_souris_events.py #White #Dark #txt #download

        
#!/usr/bin/env python3
#!coding: utf-8

"""
on va contrôler le carré (gauche, droite) avec le clavier ou la souris
QUAND on appuie sur gauche : ma_position diminue
QUAND on appuie sur droite : ma_position augmente
QUAND on clique avec le bouton gauche : ma_position est changée au clic de la souris

ces events se passe quand la touche passe de l'état "non enfoncé" à "enfoncé"
les events nous donne donc des TRANSITIONS d'état
ce genre d'action arrive par exemple quand on
- tire un missile
- saute
- change de sélection dans un menu

remarquez qu'on peut coder la transition inverse avec KEYUP et MOUSEBUTTONUP

Pour savoir le numéro d'une touche, on peut utiliser notre print "La touche numero", event.key
Cependant pygame contient des variables bien nommées contenant les numéros des touches
pygame.K_LEFT = 276 par exemple 
on peut donc faire if event.key == pygame.K_LEFT à la place de if event.key == 276
tous les noms ici : https://www.pygame.org/docs/ref/key.html
cependant, sous windows, les touches correspondent au clavier QWERTY
"""

from __future__ import print_function, division

import pygame

pygame.init()

taille = [700, 500]
ecran = pygame.display.set_mode(taille)

clock = pygame.time.Clock()

rouge = [255,0,0]
blanc = [255,255,255]

ma_position = 10

fini = 0
while fini == 0:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            fini = 1
        
        # elif est un raccourci pour "if... else... if ... else..."
        elif event.type == pygame.KEYDOWN:
            print("La touche numero", event.key)
            if event.key == 276: # touche gauche
                ma_position = ma_position - 100
            elif event.key == 275: # touche droite
                ma_position = ma_position + 100
        
        elif event.type == pygame.MOUSEBUTTONDOWN:
            # event.pos est une liste de taille 2 contenant le x et le y
            print("Clic en", event.pos[0], event.pos[1])
            ma_position = event.pos[0]
    
    # dessin
    ecran.fill(blanc)
    pygame.draw.rect(ecran, rouge, [ma_position, 20, 100, 200])
    
    pygame.display.flip()
    
    clock.tick(60)

pygame.quit()