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)