| 
														
															@@ -123,18 +123,21 @@ if __name__ == '__main__': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         dino_max_x = dino_pos[1].max() 
														 | 
														
														 | 
														
															         dino_max_x = dino_pos[1].max() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         dino_min_y = dino_pos[0].max() 
														 | 
														
														 | 
														
															         dino_min_y = dino_pos[0].max() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         dino_max_y = dino_pos[0].min() 
														 | 
														
														 | 
														
															         dino_max_y = dino_pos[0].min() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        dino_min_x = dino_pos[1].min() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        coef = 1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        trigger_second = (int(dino_pos[0].mean()), int(dino_max_x + int(coef*10)*pw)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        trigger_feather = (dino_max_y, int(dino_max_x + int(coef*12)*pw)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        jumping = False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        taking = False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        laing = False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        print(ph, pw) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        coef = 4 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        trigger_time = (int(dino_pos[0].mean()), dino_max_x + 18*pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        trigger_jump = (int(dino_pos[0].mean()), dino_max_x + 7*pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        trigger_feather = (dino_max_y-5*ph, dino_max_x + 11*pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+         
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        enter_time = None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        jump_time = None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         start = time() 
														 | 
														
														 | 
														
															         start = time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        start2= time() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        start2 = time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        last_screen = None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        speed = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                  
														 | 
														
														 | 
														
															                                  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if DEBUG: cv2.imshow('View', rgbScreen)  
														 | 
														
														 | 
														
															         if DEBUG: cv2.imshow('View', rgbScreen)  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         while True: 
														 | 
														
														 | 
														
															         while True: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -142,41 +145,48 @@ if __name__ == '__main__': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             binScreen = to_bbox(binScreen) 
														 | 
														
														 | 
														
															             binScreen = to_bbox(binScreen) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             labels, labeledScreen = cv2.connectedComponents(binScreen.astype('uint8')) 
														 | 
														
														 | 
														
															             labels, labeledScreen = cv2.connectedComponents(binScreen.astype('uint8')) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if not jumping and binScreen[trigger_second] != 0 or binScreen[trigger_feather] != 0:  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                print('jumping') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                gui.keyDown('space') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                jumping = True 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            elif jumping and binScreen[trigger_second[0], trigger_second[1]+(int(coef-1.2)*pw)] == 0 and binScreen[trigger_feather[0], trigger_feather[1]+(int(coef-1.2)*pw)] == 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                print('taking') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                gui.keyUp('space') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                gui.keyDown('down') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                jumping = False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                taking = True 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if last_screen is not None: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                xor_screen = np.logical_xor(binScreen, last_screen) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                xor_labels, xor_labeledScreen = cv2.connectedComponents(binScreen.astype('uint8')) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                x, y = np.where(xor_labeledScreen == xor_labels-1) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                speed = x.max() - x.min() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if not enter_time and binScreen[trigger_time] != 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                enter_time = time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            elif enter_time and binScreen[trigger_time] == 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                jump_time = (time() - enter_time) / coef 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                enter_time = None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if binScreen[trigger_jump] != 0 or binScreen[trigger_feather]: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                gui.press('space') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if jump_time: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    sleep(jump_time) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    gui.press('down')  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    jump_time = None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if taking and binScreen[dino_max_y-ph, dino_max_x] != 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                print('take off') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                gui.keyUp('down') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                taking = False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if time() - start2 > 15/coef: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                print(coef) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                print('speeded') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                coef += 0.2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                start2 = time() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if time() - start > 15: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (time() - start)*coef > 26*4 and (time() - start) > 8: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 print(time() - start) 
														 | 
														
														 | 
														
															                 print(time() - start) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                trigger_second = (trigger_second[0], trigger_second[1]+pw) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                trigger_jump = (trigger_jump[0], trigger_jump[1]+pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                trigger_time = (trigger_time[0], trigger_time[1]+pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 trigger_feather = (trigger_feather[0], trigger_feather[1]+pw) 
														 | 
														
														 | 
														
															                 trigger_feather = (trigger_feather[0], trigger_feather[1]+pw) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 start = time() 
														 | 
														
														 | 
														
															                 start = time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (time() - start2)*coef > 9*4 and (time() - start2) > 3.6: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                print(time() - start2) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                coef += 0.2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                start2 = time() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if DEBUG:  
														 | 
														
														 | 
														
															             if DEBUG:  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 rgbScreen = binary_to_RGB(binScreen) 
														 | 
														
														 | 
														
															                 rgbScreen = binary_to_RGB(binScreen) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 cv2.circle(rgbScreen, trigger_feather[::-1], radius=2, color=(255, 0, 0), thickness=2) 
														 | 
														
														 | 
														
															                 cv2.circle(rgbScreen, trigger_feather[::-1], radius=2, color=(255, 0, 0), thickness=2) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                cv2.circle(rgbScreen, trigger_second[::-1], radius=2, color=(0, 255, 0), thickness=2) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                cv2.circle(rgbScreen, trigger_jump[::-1], radius=2, color=(0, 255, 0), thickness=2) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                cv2.circle(rgbScreen, trigger_time[::-1], radius=2, color=(0, 0, 255), thickness=2) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 cv2.imshow('View', rgbScreen) 
														 | 
														
														 | 
														
															                 cv2.imshow('View', rgbScreen) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if cv2.waitKey(1) == ord('q'): break 
														 | 
														
														 | 
														
															                 if cv2.waitKey(1) == ord('q'): break 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # print(speed) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # last_screen = binScreen.copy() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															          
														 | 
														
														 | 
														
															          
														 |