I dont know why, but when I run my send code for when I walk around it seems to give me this error, but when I 1st do the send code it seems to work just fine. What I was trying to do is when I walk around send the new cordnets to the server to be save.
File “test.py”, line 180, in move
(self.UDPSock.sendto(self.data,self.addr))
TypeError: sendto() takes exactly 3 arguments (2 given)
import direct.directbase.DirectStart #Initialize Panda and create a window
import random, sys, os, math, time, threading, socket #libs
from direct.gui.OnscreenText import OnscreenText
from direct.task.Task import Task #Task run
from pandac.PandaModules import Fog
from pandac.PandaModules import Shader
from pandac.PandaModules import Point3,Vec4
from pandac.PandaModules import NodePath
from pandac.PandaModules import CollisionTraverser,CollisionNode
from pandac.PandaModules import CollisionHandlerQueue,CollisionRay
from direct.showbase.DirectObject import DirectObject
class World(DirectObject):
def __init__(self):
#Some texts
self.infoText = OnscreenText(text = 'Home Town', pos = (0, .9), scale = 0.07, mayChange=1, fg = (255, 255, 255, 1))
self.DistanceText = OnscreenText(text = '0', pos = (0, .7), scale = 0.07, mayChange=1, fg = (255, 255, 255, 1))
#-----------------------------------------------------
self.connect()
self.loadzone()
self.loadlay1()
#-----------------------------------------------------
self.keyMap = {"left":0, "right":0, "forward":0, "back":0}
# Accept the control keys for movement
self.accept("escape", sys.exit)
self.accept("arrow_left", self.setKey, ["left",1])
self.accept("arrow_right", self.setKey, ["right",1])
self.accept("arrow_up", self.setKey, ["forward",1])
self.accept("arrow_down", self.setKey, ["back",1])
self.accept("arrow_left-up", self.setKey, ["left",0])
self.accept("arrow_right-up", self.setKey, ["right",0])
self.accept("arrow_up-up", self.setKey, ["forward",0])
self.accept("arrow_down-up", self.setKey, ["back",0])
taskMgr.add(self.move,"moveTask")
taskMgr.add(self.camera,"cameraTask")
#Game state variables
self.prevtime = 0
#disable camera
base.disableMouse()
def connect(self):
# Set the socket parameters
self.host = "192.168.1.135"
self.ip = socket.gethostbyaddr(socket.gethostname())[-1][0]
self.client = self.ip
self.port = 21568
self.port2 = 21567
self.buf = 1024
self.buf2 = 1024
self.addr = (self.host,self.port)
self.addr2 = (self.client,self.port2)
self.zone = " "
self.pos = " "
# Create socket
self.UDPSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.UDPSock.bind(self.addr2)
self.data = self.client
(self.UDPSock.sendto(self.data,self.addr))
self.data = "Hey you there?"
(self.UDPSock.sendto(self.data,self.addr))
self.data,self.addr2 = self.UDPSock.recvfrom(self.buf2)
if self.data == "Yes":
print "Connected."
else:
print "No connection, please retry later."
def_msg = "===Enter User name and Password===";
self.data = raw_input('User name>> ')
(self.UDPSock.sendto(self.data,self.addr))
self.data = raw_input('password>> ')
(self.UDPSock.sendto(self.data,self.addr))
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
if self.data == "Sending zone.":
self.data = "ok"
(self.UDPSock.sendto(self.data,self.addr))
print "got zone"
else:
print "Lost connection."
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
self.zone = self.data
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
if self.data == "Sending pos.":
self.data = "ok"
(self.UDPSock.sendto(self.data,self.addr))
print "got pos"
else:
print "Lost connection."
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
pos = self.data
print pos
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
name = self.data + ": "
self.data,self.addr = self.UDPSock.recvfrom(self.buf2)
print self.data
def loadzone(self):
#Load the first environment model town.egg
self.environ = loader.loadModel(self.zone)
self.environ.reparentTo(render)
self.environ.setScale(0.15,0.15,0.15)
self.environ.setPos(0,0,0)
self.loaded = 1
def loadlay1(self):
#Load the grass
self.grass = loader.loadModel("towns\objects\grass")
self.grass.reparentTo(render)
self.grass.setScale(0.005,0.005,0.005)
self.grass.setPos(0,0,-60) #(3500,-10000,-60)
def camera(self, task):
if self.zone == "towns\a1":
if self.loaded == "1":
base.camera.setPos(0,0,77)
base.camLens.setFar(500000)
self.myFog = Fog("Fog Name")
self.myFog.setColor(167,162,154)
self.myFog.setExpDensity(.001)
render.setFog(self.myFog)
base.setBackgroundColor(167,162,154)
self.loaded = 0
elif self.zone == "towns/controlroom":
if self.loaded == "9999":
base.camera.setPos(0,0,115)
base.camLens.setFar(2000)
self.infoText['text']='Control Room'
base.setBackgroundColor(0,0,0)
self.loaded = 0
elif self.zone == "towns/dg1":
if self.loaded == "9242":
base.camera.setPos(0,0,115)
base.camLens.setFar(5000)
self.infoText['text']='Dg1'
self.myFog = Fog("Fog Name")
self.myFog.setColor(167,162,154)
self.myFog.setExpDensity(.001)
render.setFog(self.myFog)
base.setBackgroundColor(167,162,154)
self.loaded = 0
else:
return
#Records the state of the arrow keys
def setKey(self, key, value):
self.keyMap[key] = value
def move(self, task):
elapsed = task.time - self.prevtime
camright = base.camera.getNetTransform().getMat().getRow3(1)
if (self.keyMap["left"]!=0):
base.camera.setH(base.camera.getH() + elapsed*250)
if (self.keyMap["right"]!=0):
base.camera.setH(base.camera.getH() - elapsed*250)
if (self.keyMap["forward"]!=0):
base.camera.setPos(base.camera.getPos() + camright*(elapsed*500))
self.distance=camera.getDistance(self.grass)
[b] self.data = self.distance--Here[/b]
[b](self.UDPSock.sendto(self.data,self.addr))---Here[/b]
print repr(self.distance)
if (self.keyMap["back"]!=0):
base.camera.setPos(base.camera.getPos() - camright*(elapsed*500))
self.distance=camera.getDistance(self.grass)
[b] self.data = self.distance----Here
(self.UDPSock.sendto(self.data,self.addr))----Here[/b]
print repr(self.distance)
#store camrea pos
startpos = base.camera.getPos()
self.prevtime = task.time
return Task.cont
World()
run()