问题描述
我正在为一个大学开发项目,我的教授希望该游戏在服务器中运行。我的问题是,即使我将消息从客户端发送到服务器,我也无法移动拨板。
这是服务器/游戏:
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),"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),"normal"))
serverSock.close()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)