Python 每次客户端向服务器发送内容时,我都希望挡板移动

Python 每次客户端向服务器发送内容时,我都希望挡板移动,python,sockets,server,client,pong,Python,Sockets,Server,Client,Pong,我正在为大学开发一个项目,我的教授想让游戏在服务器内部运行。我的问题是,即使在将消息从客户端发送到服务器时,我也无法移动挡板 以下是服务器/游戏: import turtle import socket #import numpy as np #from collections import defaultdict #import os #import datetime #clear = lambda: os.system('clear') #UDP_IP = "192.168.21

我正在为大学开发一个项目,我的教授想让游戏在服务器内部运行。我的问题是,即使在将消息从客户端发送到服务器时,我也无法移动挡板

以下是服务器/游戏:

import turtle
import socket
#import numpy as np
#from collections import defaultdict
#import os
#import datetime
#clear = lambda: os.system('clear')

#UDP_IP = "192.168.210.169"
#UDP_IP = "192.168.1.70"
    
UDP_IP = "192.168.1.70"
UDP_PORT = 5002
serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
serverSock.bind((UDP_IP, UDP_PORT))

while True:
    
    wn = turtle.Screen()
    wn.title("Projeto Pong")
    wn.bgcolor("black")
    wn.setup(width=800, height=600)
    wn.tracer(0)

    # Score
    score = 0

    # Stick de jogo
    paddle = turtle.Turtle()
    paddle.speed(0)  # velocidade de animacao
    paddle.shape("square")
    paddle.color("white")
    paddle.shapesize(stretch_wid=5, stretch_len=1)
    paddle.penup()
    paddle.goto(-350, 0)

    # Bola
    ball = turtle.Turtle()
    ball.speed(0)  # velocidade de animacao
    ball.shape("circle")
    ball.color("yellow")
    ball.penup()
    ball.goto(0, 0)
    ball.dx = 0.1
    ball.dy = 0.1  # sempre que a bola se move, move-se 2 pixeis de cada vez

    # Text Score
    pen = turtle.Turtle()
    pen.speed(0)
    pen.color("white")
    pen.penup()
    pen.hideturtle()
    pen.goto(0, 260)
    pen.write("Score: 0", align="center", font=("Courier", 24, "normal"))

    # Functions
    def paddle_up(order):
        if order == "up": 
            y = paddle.ycor()
            y += 30
            paddle.sety(y)
              
    def paddle_down(order):
        if order == "down": 
            y = paddle.ycor()
            y -= 30
            paddle.sety(y)

    data, addr = serverSock.recvfrom(1024)
        
    paddle_up(data)
    paddle_down(data)

    while True:
        # Loop Jogo
        wn.update()

        # Mover a Bola
        ball.setx(ball.xcor() + ball.dx)  # somar a posição inicial com o movimento de 2 px
        ball.sety(ball.ycor() + ball.dy)

        # Bordas de Jogo
        if ball.ycor() > 290:
            ball.sety(290)
            ball.dy *= -1

        if ball.ycor() < -290:
            ball.sety(-290)
            ball.dy *= -1

        if ball.xcor() < -390:
            ball.goto(0, 0)
            ball.dx *= -1
            pen.clear()
            score = 0
            pen.write("Score: {}".format(score), align="center", font=("Courier", 24, "normal"))

        if ball.xcor() > 390:
            ball.setx(390)
            ball.dx *= -1

        # Colisao entre joystick e bola
        if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle.ycor() + 40) and (ball.ycor() > paddle.ycor() - 40):
            ball.setx(-340)
            ball.dx *= -1
            score += 1
            pen.clear()
            pen.write("Score: {}".format(score), align="center", font=("Courier", 24, "normal"))            
serverSock.close()
导入海龟
导入套接字
#将numpy作为np导入
#从集合导入defaultdict
#导入操作系统
#导入日期时间
#clear=lambda:os.system('clear')
#UDP_IP=“192.168.210.169”
#UDP_IP=“192.168.1.70”
UDP_IP=“192.168.1.70”
UDP_端口=5002
serverSock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#UDP
绑定((UDP_IP,UDP_端口))
尽管如此:
wn=tutle.Screen()
名称(“Pong项目”)
wn.bgcolor(“黑色”)
wn.设置(宽度=800,高度=600)
wn.tracer(0)
#得分
分数=0
#木棍
桨=乌龟。乌龟()
划桨速度(0)#动物速度
桨形(“方形”)
桨。颜色(“白色”)
桨叶形状尺寸(拉伸宽度=5,拉伸长度=1)
划桨
转桨(-350,0)
#博拉
ball=海龟。海龟()
速度球(0)#速度球
球形(“圆”)
球。颜色(“黄色”)
ball.penup()
球。转到(0,0)
ball.dx=0.1
ball.dy=0.1#表示移动bola se,移动se 2皮克斯德卡达维兹
#文本分数
pen=海龟。海龟()
笔速(0)
钢笔颜色(“白色”)
pen.penup()
pen.hideturtle()
后藤(0260)
书写(“分数:0”,align=“中心”,font=(“信使”,24,“正常”))
#功能
def挡板向上(顺序):
如果订单==“向上”:
y=桨.ycor()
y+=30
桨。赛蒂(y)
def挡板向下(顺序):
如果订单==“向下”:
y=桨。ycor()
y-=30
桨。赛蒂(y)
数据,addr=serverSock.recvfrom(1024)
划桨向上(数据)
划桨向下(数据)
尽管如此:
#环形慢跑
wn.update()
#波拉酒店
ball.setx(ball.xcor()+ball.dx)#somar a posição inical com o movimento de 2 px
ball.sety(ball.ycor()+ball.dy)
#博尔达斯德乔戈酒店
如果ball.ycor()大于290:
鲍尔·塞蒂(290)
ball.dy*=-1
如果ball.ycor()小于-290:
球。塞蒂(-290)
ball.dy*=-1
如果ball.xcor()小于-390:
球。转到(0,0)
ball.dx*=-1
pen.clear()
分数=0
书写(“分数:{}”。格式(分数),align=“center”,font=(“Courier”,24,“normal”))
如果ball.xcor()大于390:
球。setx(390)
ball.dx*=-1
#科利索中心博拉酒店
如果(ball.xcor()<-340和ball.xcor()>-350)和(ball.ycor()blade.ycor()-40):
球。setx(-340)
ball.dx*=-1
分数+=1
pen.clear()
书写(“分数:{}”。格式(分数),align=“center”,font=(“Courier”,24,“normal”))
serverSock.close()