The Python Game Book

code games. learn Python.

User Tools

Site Tools


Sidebar

Navigation

indexmenu_n_9999 Start
msort nsort navbar

fr:glossaire:c:clavier

Clavier

Clavier. Source: Wikipedia http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Qwerty.svg/799px-Qwerty.svg.png

Un clavier est le périphérique d'entrée principal de tout ordinateur. Pour les développeurs de jeux, il est important de noter que seuls les claviers de haute qualité peuvent gérer correctement deux touches pressées simultanément.

Consultez Rollover pour plus d'informations. Les problèmes de touches mal interprétées ou ignorées sont généralement des problèmes de matériels.

programme pour tester votre clavier

yipyip User yipyip a écrit un chouette programme pygame pour tester votre clavier. Astuce: appuyez sur <key>w</key>, <key>s</key>, et <key>d</key> en même temps.

#!/usr/bin/env python

####

import pygame as pyg

####

class Display(object):
          

  def __init__(self, width, height, fsize):

    pyg.init()
    self.screen = pyg.display.set_mode((width, height), pyg.DOUBLEBUF)
    self.font = pyg.font.Font(None, fsize)
    self.clock = pyg.time.Clock()
    self.fsize = fsize
    self.events = []
    self.pygkeys = [k for k in pyg.__dict__.keys() if k.startswith('K_')]

   
  def dispatch_events(self):

    #print pyg.key.get_pressed()
    self.act_keys = ''.join(('*' if c else '.' for c in pyg.key.get_pressed()))

    events = pyg.event.get()
    for ev in events:
      print ev
      if ev.type == pyg.QUIT:
        return 'q'
      if ev.type == pyg.KEYUP:
        self.events = []
      if ev.type == pyg.KEYDOWN:
        print ev.scancode
        self.events.append(ev.key)
        if ev.key == pyg.K_ESCAPE:
          return 'q'

 
  def draw_text(self, x, y, text):

    surface = self.font.render(text, True, (0, 255, 0))
    self.screen.blit(surface, (x, y))


  def draw_all(self):

    self.draw_text(0, 0, self.act_keys)
    ks = []
    for ev in self.events:
      for k in self.pygkeys:
        if pyg.__dict__[k] == ev:
          ks.append(k)
          break
        
    #print ks
    self.draw_text(0, self.fsize, (' ' * 5).join('%s' % k for k in ks))
    

       
  def flip(self):

    self.clock.tick(70)
    pyg.display.flip()
    self.screen.fill((0,0,0))

####

class Controller(object):


  def __init__(self, width, height, fsize):

    self.display = Display(width, height, fsize)


  def run(self):

    while not self.display.dispatch_events() == 'q':
      self.display.draw_all()
      self.display.flip()

####
      
if __name__ == '__main__':

  Controller(1000, 40, 18).run()

fr/glossaire/c/clavier.txt · Last modified: 2020/05/03 21:35 by horst