-
Notifications
You must be signed in to change notification settings - Fork 0
/
camera.py
77 lines (58 loc) · 2.5 KB
/
camera.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import pyautogui
import time
import random
class Camera:
possibleDirections = ['left','right','up','down']
lastFakeTurnCount = 0
def __init__(self):
pass
def turnCameraWithKeyBoard(self, desiredDuration = 1.0, desiredDirection:str = None):
if desiredDirection == None:
direction = random.choice(self.possibleDirections)
else:
direction = desiredDirection
if desiredDuration == 1.0:
duration = random.uniform(.75,1.5)
else:
duration = desiredDuration
c = random.uniform(0.05,0.2)
time.sleep(c)
print("CAMERA:TURNCAMERAWITHKEYBOARD: turning camera in",direction,"direction.")
pyautogui.keyDown(direction)
time.sleep(duration)
pyautogui.keyUp(direction)
def turnCameraWithMouse(self, desiredDuration = 1.0, desiredDirection:str = None):
pass
#place holder function for when creating a turning camera for mouse as that seems more realistic
# if desiredDirection != None:
# direction = random.choice(self.possibleDirections)
# else:
# direction = desiredDirection
# if desiredDuration == 1.0:
# duration = random.uniform(.75,1.5)
# else:
# duration = desiredDuration
# c = random.uniform(0.05,0.2)
# time.sleep(c)
# pyautogui.keyDown(direction)
# time.sleep(duration)
# pyautogui.keyUp(direction)
def humanCameraBehavior(self, desiredRange):
#desired range is used to determine the weighting of the chance for the camera to turn for example, 10, will have a 10% chance for camera to turn
#print("CAMERA:HUMANCAMERABEHAVIOR:checking if camera should turn")
if self.lastFakeTurnCount >= desiredRange:
print("CAMERA:HUMANCAMERABEHAVIOR: counter higher than desired range, camera turning...")
self.lastFakeTurnCount = 0
self.turnCameraWithKeyBoard()
else:
denominator = 2
weightIncreaser = self.lastFakeTurnCount // denominator
moddedRange = desiredRange - weightIncreaser
trigger = moddedRange//2
number = random.randint(1,moddedRange)
if number == trigger:
print("CAMERA:HUMANCAMERABEHAVIOR: camera turning...")
self.lastFakeTurnCount = 0
self.turnCameraWithKeyBoard()
else:
self.lastFakeTurnCount += 1