Turtle Pong: Zwei Spieler gleichzeitig bewegen [Duplikat]Python

Python-Programme
Anonymous
 Turtle Pong: Zwei Spieler gleichzeitig bewegen [Duplikat]

Post by Anonymous »

Hey, ich bin neu in der Welt des Programmierens, also beschließe ich, mit der Entwicklung einfacher Spiele zu beginnen, damit ich die Logik dahinter erlernen kann.
In meinem Code für das klassische Pong-Spiel weiß ich nicht warum, aber ich schaffe es nicht, beide Spieler (JugadorA und JugadorB) zu bewegen. Ich kann immer nur einen nach dem anderen umziehen.
Wenn jemand einen Blick auf mein Büchlein werfen und mir einen Vorschlag machen könnte, wäre ich sehr dankbar. Auch wenn ihr Vorschläge für einfache Spiele zum Programmieren in Python (der Sprache, die ich lerne) habt, bin ich ganz Ohr.

Code: Select all

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post