Python in OBS
Verfasst: Sonntag 7. Januar 2024, 19:22
]Ich habe letztens mit jemanden telefoniert, und seine Maus hat nach 5 Sekunden Inaktivität, oder nachdem er zum zweiten bildschirm gewechselt ist so gemacht wie eine fernseher bildschirmschoner, ist also von einer seite zur anderen gebounced. er hat mir auch den code geschickt und gesagt ich müsse es in Python mit OBS machen. Ich habe es auch installier bekommen, allerdings funktioniert der code immer noch nicht. Ich habe auch die Wall szene und Cangr Quelle, welche meinen ersten bildschirm aufnimmt. pyautogui habe ich mit pip auch schon installier. Anbei sende ich den Code, danke im voraus für die Hilfe:)
Code: Alles auswählen
import obspython as S
import time
import random
import pyautogui
dvdX = 144
dvdY = 128
x_speed = 3
y_speed = 3
lastX = 0
lastY = 0
lastMove = time.time()
isCursor = False
def update_text():
global dvdX, dvdY, x_speed, y_speed, isCursor, lastX, lastY, lastMove
scene = S.obs_get_scene_by_name("Wall")
scene_item = S.obs_scene_find_source(scene, "cangr")
if scene_item:
pos = S.vec2()
try:
x, y = pyautogui.position()
except:
x = 0
y = 0
if (x != lastX or y != lastY) and x > 32 and y > 32:
lastX = x
lastY = y
lastMove = time.time()
#print("Xs: " + str(x_speed) + ", Ys: " + str(y_speed) + ", x " + str(x) + " y " + str(y) + ", lastX " + str(lastX) + " lastY " + str(lastY))
if x > 1921 or (time.time() - lastMove) > 3:
if isCursor:
dvdX = min(lastX, 1920 - 32)
dvdY = min(lastY, 1080 - 32)
x_speed = 3
y_speed = 3
if (dvdX >= (1920 - 32)) or (dvdX < 32):
x_speed = -x_speed
if (dvdY >= (1080 - 32)) or (dvdY < 32):
y_speed = -y_speed
dvdX += x_speed
dvdY += y_speed
pos.x = dvdX - 32
pos.y = dvdY - 32
#print("new x: " + str(dvdX) + " new y: " + str(dvdY))
isCursor = False
else:
pos.x = x - 32
pos.y = y - 32
isCursor = True
S.obs_sceneitem_set_pos(scene_item, pos)
S.obs_scene_release(scene)
def start():
S.timer_add(update_text, 17)
S.timer_remove(start)
def script_description():
return "cangr"
def script_load(settings):
S.timer_add(start, 3000)
def script_unload():
S.timer_remove(update_text)