我需要一些帮助来确定我的代码,以便通过TCP连接从Blender发送信息到Pure Data.我有一个球在其上滚动的表面,我需要抓住球的速度及其碰撞,以便通过TCP将其发送到Pd,以便将数据转换为程序音频.
我一直在寻找可能的方法,由于我对python和编码的理解非常有限(刚开始),我发现很难看到最新情况.
现在是我的问题:
我知道我可以通过在搅拌器中写这个代码来发送一个简单的代码,这对我有用:
import socket
host ='127.0.0.1'
port = 50007
msg = '345;'
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host,port))
s.send(msg.encode())
我知道我可以使这个代码从我的对象获得例如坐标:
import bge
def main():
cont = bge.logic.getCurrentController()
owner = cont.owner
vel = owner.getVelocity()
x = (vel [0])
y = (vel [1])
z = (vel [2])
print (x+y+z)
main()
我需要弄清楚的是如何将这些信息插入my.send,以便我可以在Pure Data中接收它.
我已经看过如何使这项工作的网站,但没有找到我需要的东西.我想知道是否有人有一些可能与此有关的好消息来源,或者是否有人知道如何将我的owner.getVelocity()集成到tcp消息中?
解决方法:
编辑:
我想我解决了我自己,我现在正在PD中获取我的数据流.
如果有人有兴趣这是代码:
import bge
import socket
cont = bge.logic.getCurrentController()
owner = cont.owner
vel = owner.getVelocity()
x = (vel [0])
y = (vel [1])
z = (vel [2])
added = x+y+z
print (added)
tsr = str(added)
tsr += ';'
host = '127.0.0.1'
port = 50007
msg = '123456;'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send(tsr.encode())
s.shutdown(0)
s.close()
谢谢你的时间!
安德烈亚斯