From the class Code Toolkit Python · Fall 2021
networked_example/networked_example.pyde
import json
from week11_network import *
myCreature = {}
# add your name - must be unique among everyone else in class
myCreature["name"] = "Kasper"
myCreature["x"] = 250
myCreature["y"] = 250
myCreature["color"] = color(0,50,50)
myCreature["size"] = 6
creatureList = []
def setup():
size(500, 500)
rectMode(CENTER)
def draw():
global creatureList
background(255)
fill(myCreature["color"])
rect(myCreature["x"],myCreature["y"],myCreature["size"],myCreature["size"])
i = 0
while i < len(creatureList):
creature = creatureList[i]
fill( creature["color"] )
rect(creature["x"],creature["y"],creature["size"],creature["size"])
i = i + 1
creatureList = getData()
sendData(myCreature)
def keyPressed():
if key == 'i':
myCreature["y"] = myCreature["y"] - 2
elif key == 'm':
myCreature["y"] = myCreature["y"] + 2
elif key == 'j':
myCreature["x"] = myCreature["x"] - 2
elif key == 'k':
myCreature["x"] = myCreature["x"] + 2
networked_example/week13_networking.py
ip_address = "174.138.45.118"
def getData():
global lastGet, creatureList
# only fetch new data once per second
if millis() > lastGet + 1000:
creatureList = []
lastGet = millis()
response = urllib2.urlopen("http://"+ip_address+":5000/get")
j = json.load(response)
print(j)
c = []
for c in j:
c["x"] = int(c["x"])
c["y"] = int(c["y"])
c["color"] = unhex(c["color"])
c["size"] = int(c["size"])
creatureList.append(c)
def sendData():
global lastSend
# only send once per second
if millis() > lastSend + 1000:
lastSend = millis()
variableString = "name=" + myCreature["name"]
variableString += "&x=" + str(myCreature["x"])
variableString += "&y=" + str(myCreature["y"])
variableString += "&color=" + hex(myCreature["color"])
variableString += "&size=" + str(myCreature["size"])
returnValue = loadStrings("http://"+ip_address++":5000/move?" + variableString)