2017-04-27 3 views
0

Donc je fais un guitar hero comme un jeu en python 3.6.0. J'essaie d'utiliser pygame.KEYDOWN pour vérifier quand la barre d'espacement est tapée. Cependant, je constate qu'il manque parfois des entrées et n'augmente pas mon nombre de hits. Voici la partie pertinente du code:pygame.KEYDOWN entrées manquantes

import pygame as pyg 
pyg.init() 


hit=0 


pyg.key.set_repeat() 


playFlag=True 

while playFlag: 

    pyg.event.get() 
    redraw_screen() 
    for event in pyg.event.get():  
    if event.type == pyg.QUIT:  
     playFlag = False     


    if event.type==pyg.KEYDOWN and event.key==pyg.K_SPACE: 

    for i in range(len(song1)): 
     if 550>noteheight[i]>450: 
      hit+=1 
       noteheight[i]=700 

#Moves the notes 
for i in range(len(song1)): 
    noteheight[i]+=notespeed 

pyg.time.delay(10) 

pyg.quit()

+0

Nous aurons besoin de voir plus de votre code ... Idéalement, vous fournir un exemple minimal démontrant le problème. – mgalgs

+0

J'ai ajouté un peu plus de code pour montrer comment fonctionne le corps principal. Si vous ne voulez pas aller de l'avant et ajouter la fonction que j'ai pour redessiner la fenêtre et toute la variable globale alors je peux le faire aussi, je ne veux pas rendre le code trop difficile à suivre. –

Répondre

0

La seule raison pour laquelle je peux trouver la raison pour laquelle votre compteur de succès ne peut pas travailler est que vous avez probablement il déclaré dans la boucle que ce code est écrit, donc en le réinitialisant à chaque intervalle. En ce qui concerne les notes manquantes, je ne peux pas vraiment vous aider ... Je ne suis pas sûr de ce que vous essayez vraiment de faire ici. Votre 3ème ligne spécifiquement.