Ich möchte eine Art Spiel in Python mit Pygame eingeben. Also, wenn das gedrückte Zeichen der Schlüssel das gleiche wie das Zeichen im Wort ist, sollte es True zurückgeben ... Gibt es eine Möglichkeit, dies in Python zu tun? Beispiel: Das Wort ist "cat", wenn der Benutzer die Taste "c" drückt, dann gibt es true zurück ... und so weiter für den Rest der Zeichen.Vergleichen von keypressed zu einem char
hier ist meine main.py Datei
from time import sleep
import pygame
import random
import winsound
from words import Words
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
pygame.init()
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
done = False
clock = pygame.time.Clock()
screen = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
w1 = Words(screen) #making a single word (for now) to see if typing works
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
screen.fill(WHITE)
w1.draw()
#attempting to write code here to compare word and user input
pygame.display.flip()
clock.tick(60)
pygame.init()
exit()
hier ist meine words.py Datei
from random_words import RandomWords
import pygame
import random
from queue import *
rw = RandomWords()
class Words():
def __init__(self, screen):
self.screen = screen
self.x_point = 400
self.y_point = 400
self.word = rw.random_word() #generates a random word
self.queue = Queue() #was hoping to use the queue so that if the user types the char correctly in the right order, then the letter would change color or something (but that's further down the line)
for c in self.word: #iterate through randomized word..
self.queue.put(c) #add each char in randomized word to queue, for typing reasons
def getY(self):
return self.y_point
def draw(self):
#creates a new object
myfont = pygame.font.SysFont('Comic Sans MS' ,30)
#creates a new surface with text drawn on it
textsurface = myfont.render(self.word, False, (0,0,0))
self.screen.blit(textsurface,(self.x_point,self.y_point))
Was haben Sie versucht, so weit? – Dragonthoughts
Das Vergleichen von Tastendrucken mit Zeichen hat viele Probleme. Zum Beispiel brauchen Sie oft mehrere Tastendrücke, um ein Zeichen zu erstellen. Die Probleme beginnen mit Umschalttasten auf lateinischen Tastaturen, die für Akzente schlechter werden. Schließlich wird die Übereinstimmung zwischen Schlüssel und Zeichen immens, wenn IME (Eingabemethoden-Editoren) für Skripte wie Chinesisch oder Japanisch verwendet werden. – Dragonthoughts
Ich dachte, ich könnte tun, wenn K_a == 'a' oder etwas ähnliches, aber Sie können den Variablennamen selbst nicht vergleichen, soweit ich weiß (da k_a, k_b usw. eine Variable in pygame ist). Im Moment denke ich daran, den Nutzer einfach in die Konsole tippen zu lassen und ihn dann mit dem Wort zu vergleichen. – cation