88 lines
1.5 KiB
Python
Executable File
88 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import time
|
|
import socket
|
|
import random
|
|
import math
|
|
|
|
IP_ADDRESS = "2001:638:904:ffc9::2"
|
|
PORT = 1234
|
|
|
|
W = 1920
|
|
H = 1080
|
|
|
|
s_w = 60
|
|
s_w_d = 9
|
|
s_c = "F904BC"
|
|
s_c2 = "F7B9E7"
|
|
|
|
target_x = random.randint(200, W-200)
|
|
target_y = random.randint(200, H-200)
|
|
|
|
|
|
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
|
|
s.connect((IP_ADDRESS, PORT))
|
|
|
|
x = random.randint(0, W)
|
|
y = random.randint(0, H)
|
|
d_x = 0
|
|
d_y = 0
|
|
step = 1
|
|
speed_x = 1
|
|
speed_y = 1
|
|
|
|
while True:
|
|
if x < target_x:
|
|
d_x += step
|
|
else:
|
|
d_x -= step
|
|
|
|
if y < target_y:
|
|
d_y += step
|
|
else:
|
|
d_y -= step
|
|
|
|
d_x += random.randint(-1,1)
|
|
d_y += random.randint(-1,1)
|
|
|
|
x += d_x
|
|
y += d_y
|
|
|
|
if d_x > 20:
|
|
d_x = 20
|
|
|
|
if d_y > 20:
|
|
d_y = 20
|
|
|
|
if x < 100 or x > W-100:
|
|
d_x = d_y//2
|
|
|
|
if y < 100 or y > H-100:
|
|
d_y = d_y//2
|
|
|
|
s_w = int(math.sqrt(d_x**2+d_y**2)*2)
|
|
|
|
s_w += s_w_d*2
|
|
s_r = s_w//2
|
|
s_r_q = s_r**2
|
|
|
|
out = []
|
|
|
|
for i in range(s_w):
|
|
for j in range(s_w):
|
|
if (i-s_r)**2 + (j-s_r)**2 <= s_r_q:
|
|
ii = i - s_w//2
|
|
jj = j - s_w//2
|
|
if (i-s_r)**2 + (j-s_r)**2 <= s_w_d:
|
|
c = s_c
|
|
else:
|
|
c = s_c2
|
|
out.append("PX {} {} {}\n".format(x+ii,y+jj, c))
|
|
|
|
frame_end_time = time.time() + 0.1
|
|
while time.time() < frame_end_time:
|
|
s.send("".join(out).encode("utf-8"))
|
|
|
|
|
|
#time.sleep(0.1)
|