Черепаха-понг: переместите двух игроков одновременно [дубликат]Python

Программы на Python
Ответить
Anonymous
 Черепаха-понг: переместите двух игроков одновременно [дубликат]

Сообщение Anonymous »

Эй, я новичок в мире программирования, поэтому решил начать создавать простые игры, чтобы изучить логику, лежащую в их основе.
В моем коде классической игры в понг я не знаю почему, но я не могу переместить обоих игроков (jugadorA и jugadorB). Я могу перемещаться только по одному.
Если бы кто-нибудь посмотрел на мою возможность и дал мне предложение, я был бы очень благодарен. Кроме того, если у вас есть предложения по простым играм для программирования на Python (язык, который я изучаю), я внимательно слушаю.
import turtle

#Ventana
wn = turtle.Screen()
wn.title("Mi Pong")
wn.bgcolor("black")
wn.setup(width = 800, height = 600)
wn.tracer(0)

#Marcador
marcadorA = 0
marcadorB = 0

#Jugador A
jugadorA = turtle.Turtle()
jugadorA.speed(0)
jugadorA.shape("square")
jugadorA.color("white")
jugadorA.penup()
jugadorA.goto(-350,0)
jugadorA.shapesize(stretch_wid = 5, stretch_len = 1)

#Jugador B
jugadorB = turtle.Turtle()
jugadorB.speed(0)
jugadorB.shape("square")
jugadorB.color("white")
jugadorB.penup()
jugadorB.goto(350,0)
jugadorB.shapesize(stretch_wid = 5, stretch_len = 1)

#Pelota
pelota = turtle.Turtle()
pelota.speed(0)
pelota.shape("circle")
pelota.color("blue")
pelota.penup()
pelota.goto(0,0)
pelota.dx = 3
pelota.dy = 3

#Linea Division
division = turtle.Turtle()
division.color("white")
division.goto(0,400)
division.goto(0,-400)

#Pen
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0,260)
pen.write("Juegador A: 0 Jugador B: 0", align = "center", font= ("Courier", 24, "normal"))

#Funciones
def jugadorA_up():
y = jugadorA.ycor()
y += 20
jugadorA.sety(y)

def jugadorA_down():
y = jugadorA.ycor()
y -= 20
jugadorA.sety(y)

def jugadorB_up():
y = jugadorB.ycor()
y += 20
jugadorB.sety(y)

def jugadorB_down():
y = jugadorB.ycor()
y -= 20
jugadorB.sety(y)

#teclado
wn.listen()
wn.onkeypress(jugadorA_up,"w")
wn.onkeypress(jugadorA_down,"s")
wn.onkeypress(jugadorB_up,"Up")
wn.onkeypress(jugadorB_down,"Down")

while True:
wn.update()

# Mover los jugadores al mismo tiempo
if "w" in wn._keys:
jugadorA_up()
if "s" in wn._keys:
jugadorA_down()
if "Up" in wn._keys:
jugadorB_up()
if "Down" in wn._keys:
jugadorB_down()

pelota.setx(pelota.xcor() + pelota.dx)
pelota.sety(pelota.ycor() + pelota.dy)

#Bordes
if pelota.ycor() > 290:
pelota.dy *= -1
if pelota.ycor() < -290:
pelota.dy *= -1

#Bordes derecha e izquierda
if pelota.xcor() > 390:
pelota.goto(0,0)
pelota.dx *= -1
marcadorA += 1
pen.clear()
pen.write("Juegador A: {} Jugador B: {}".format(marcadorA,marcadorB), align = "center", font= ("Courier", 24, "normal"))

if pelota.xcor() < -390:
pelota.goto(0,0)
pelota.dx *= -1
marcadorB += 1
pen.clear()
pen.write("Juegador A: {} Jugador B: {}".format(marcadorA,marcadorB), align = "center", font= ("Courier", 24, "normal"))

if ((pelota.xcor() > 340 and pelota.xcor() < 350)
and (pelota.ycor() < jugadorB.ycor() + 50
and pelota.ycor() > jugadorB.ycor() -50)):
pelota.dx *= -1

if ((pelota.xcor() < -340 and pelota.xcor() > -350)
and (pelota.ycor() < jugadorA.ycor() + 50
and pelota.ycor() > jugadorA.ycor() -50)):
pelota.dx *= -1


Подробнее здесь: https://stackoverflow.com/questions/759 ... rs-at-once
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»