Python Scrip Tasteneingabe zum Spiel?
Hallo, ich probiere mich grade im Programmieren. aus spaß/versuch wollte ich eine Geschick spiel automatisierten Aber ich bekomme es einfach nicht hin, dass das Scrip die tastenbefehle zum spiel sendet aber genau das passiert nicht. wen ich es in einer Text Datei probiere klappts. Script: import cv2 import numpy as np import pyautogui import time # Funktion zum Erstellen eines Screenshots eines bestimmten Bereichs def take_screenshot(region=None): try: screenshot = pyautogui.screenshot(region=region) screenshot = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) return screenshot except Exception as e: print(f"Fehler beim Erstellen des Screenshots: {e}") return None # Funktion zum Finden einer Vorlage in einem Screenshot def find_template(screenshot, template_path, threshold=0.8): try: template = cv2.imread(template_path, 0) if template is None: print(f"Vorlage konnte nicht geladen werden: {template_path}") return False screenshot_gray = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY) result = cv2.matchTemplate(screenshot_gray, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) if max_val >= threshold: print(f"Vorlage {template_path} gefunden bei {max_loc}, mit Wert {max_val}") return True except cv2.error as e: print(f"OpenCV Fehler beim Finden der Vorlage: {e}") except Exception as e: print(f"Allgemeiner Fehler beim Finden der Vorlage: {e}") return False # Hauptfunktion für die Automatisierung def play_waveshaper(region): shapes_templates = { 'triangle_down': r'C:\Users\nilsw\Pictures\Screenshots\triangle_down_template.png', 'triangle_up': r'C:\Users\nilsw\Pictures\Screenshots\triangle_up_template.png', 'square_up': r'C:\Users\nilsw\Pictures\Screenshots\square_up_template.png', 'square_down': r'C:\Users\nilsw\Pictures\Screenshots\square_down_template.png' } shapes_keys = { 'triangle_down': 'Q', # Tastenbelegung für Dreieck Runter 'triangle_up': 'E', # Tastenbelegung für Dreieck Hoch 'square_up': 'W', # Tastenbelegung für Viereck Hoch 'square_down': 'S' # Tastenbelegung für Viereck Runter } try: while True: screenshot = take_screenshot(region) if screenshot is None: print("Screenshot ist None, versuche es erneut.") continue found = False for shape, template_path in shapes_templates.items(): if find_template(screenshot, template_path): if shape in shapes_keys: key = shapes_keys[shape] print(f"Muster {shape} gefunden und die Taste {key} wird gedrückt.") pyautogui.press(key) time.sleep(0.1) # Kurze Verzögerung nach Tastendruck found = True if found: # Füge hier weitere Aktionen hinzu, die ausgeführt werden sollen, wenn ein Muster gefunden wurde time.sleep(1) # Beispiel für eine Pause, bevor der nächste Screenshot gemacht wird else: time.sleep(0.1) # Warte eine kurze Zeit, bevor der nächste Screenshot gemacht wird except KeyboardInterrupt: print("Automatisierung gestoppt") except Exception as e: print(f"Ein Fehler ist aufgetreten: {e}") if __name__ == "__main__": region = (0, 0, 1279, 1389) # Region, die den gesamten Bildschirm abdeckt print(f"Überwachte Region: {region}") play_waveshaper(region)