Tortuga: dibuja líneas con las teclas de flecha

En este artículo, aprenderemos cómo dibujar líneas usando el teclado (teclas de flecha) en los gráficos de Turtle. Primero analicemos algunos métodos utilizados en la implementación a continuación:

  1. wn.listen(): usando esto, podemos dar entradas de teclado
  2. wn.onkeypress(func, “tecla”): esta función se utiliza para vincular diversión al evento de liberación de tecla de la tecla. Para poder registrar eventos clave, TurtleScreen debe tener foco.
  3. setx(posición): Este método se usa para establecer la segunda coordenada de la Turtle en x, dejando la primera coordenada sin cambios Aquí, cualquiera que sea la posición de la Turtle, establece la coordenada x en la entrada dada manteniendo la coordenada y sin cambios.
  4. sety(posición): este método se usa para establecer la segunda coordenada de la Turtle en y, dejando la primera coordenada sin cambios Aquí, cualquiera que sea la posición de la Turtle, establece la coordenada y en la entrada dada manteniendo la coordenada x sin cambios.
  5. ycor(): Esta función se utiliza para devolver la coordenada y de la Turtle de la posición actual de la Turtle. No requiere ningún argumento.
  6. xcor(): esta función se utiliza para devolver la coordenada x de la Turtle de la posición actual de la Turtle. No requiere ningún argumento.
  7. head.penup: Recoge el bolígrafo para que la Turtle no dibuje una línea mientras se mueve
  8. head.hideturtle: Este método se usa para hacer que la Turtle sea invisible. Es una buena idea hacer esto mientras estás en medio de un dibujo complicado porque esconder la Turtle acelera el dibujo de manera observable. Este método no requiere ningún argumento.
  9. head.clear: Esta función se usa para borrar los dibujos de la Turtle de la pantalla
  10. head.write: esta función se utiliza para escribir texto en la posición actual de la Turtle.

Acercarse

  • Importe los módulos de Turtle.
  • Consigue una pantalla para dibujar
  • Defina dos instancias para la Turtle, una es un bolígrafo y otra es la cabeza.
  • La cabeza es para decir qué tecla está presionada actualmente
  • Define las funciones para el movimiento arriba, abajo, izquierda, derecha de la Turtle.
  • En las respectivas funciones arriba, izquierda, derecha y abajo, configure la flecha para moverse 100 unidades en las direcciones arriba, izquierda, derecha y abajo, respectivamente, cambiando las coordenadas x e y.
  • Use la función listen() para dar entradas de teclado.
  • Use onkeypress para registrar eventos clave.

A continuación se muestra la implementación de Python del enfoque anterior:

Python3

# import for turtle module
import turtle
  
# making a workScreen
wn = turtle.Screen()
  
# defining 2 turtle instance
head = turtle.Turtle()
pen = turtle.Turtle()
  
# head is for telling which key is pressed
head.penup()
head.hideturtle()
  
# head is at 0,260 coordinate
head.goto(0, 260)
head.write("This is to tell which key is currently pressed",
           align="center", font=("courier", 14, "normal"))
  
  
def f():
    y = pen.ycor()
    pen.sety(y+100)
    head.clear()
    head.write("UP", align="center", font=("courier", 24, "normal"))
  
  
def b():
    y = pen.ycor()
    pen.sety(y-100)
    head.clear()
    head.write("Down", align="center", font=("courier", 24, "normal"))
  
  
def l():
    x = pen.xcor()
    pen.setx(x-100)
    head.clear()
    head.write("left", align="center", font=("courier", 24, "normal"))
  
  
def r():
    x = pen.xcor()
    pen.setx(x+100)
    head.clear()
    head.write("Right", align="center", font=("courier", 24, "normal"))
  
  
wn.listen()
wn.onkeypress(f, "Up")  # when up is pressed pen will go up
wn.onkeypress(b, "Down")  # when down is pressed pen will go down
wn.onkeypress(l, "Left")  # when left is pressed pen will go left
wn.onkeypress(r, "Right")  # when right is pressed pen will go right

Producción

Publicación traducida automáticamente

Artículo escrito por kashishmishra9911 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *