你如何使用dx?
How do you use dx?
我的代码有一个小问题:
import turtle
wn = turtle.Screen()
wn.bgcolor('lightblue')
cup = turtle.Turtle()
cup.shape('square')
cup.shapesize(1.5, 1)
cup.speed(0)
cup.dy = 1
cup.dx = 2
cup.penup()
gravity = 0.1
def face_right():
cup.setheading(310)
def face_left():
cup.setheading(45)
def jump_right():
cup.dy *= -1
def jump_left():
cup.dx *= -1
cup.dy += gravity
def do_right():
jump_right()
face_right()
def do_left():
face_left()
jump_left()
wn.listen()
wn.onkeypress(do_right, 'Right')
wn.onkeypress(do_left, 'Left')
wn.listen()
while True:
wn.update()
cup.dy -= gravity
cup.sety(cup.ycor() + cup.dy)
cup.setx(cup.xcor() + cup.dx)
如您所见,当您 运行 代码时,“向右跳转”功能运行良好。跳左一?没那么多。我尝试通过尝试大量不同的可能组合来解决这个问题,但 none 似乎有效。我在游戏中想要的只是向右跳的功能,但是当按下左箭头键时它会向左跳。我被要求只用乌龟做一个完整的游戏,但我不知道我是否还能继续。
非常感谢!
PS 我正在使用 python 3
dx
和dy
是位置变化量。如果dx
为2,表示在一定时间内重复右移2。还有,dy
是上下位置的变化量。您通过添加或减去而不是乘以更改量来实现它。乘法会非常突然地改变位置的变化量,乘以负数意味着改变方向。以下是您的代码的修改后的代码。
import turtle
wn = turtle.Screen()
wn.bgcolor('lightblue')
cup = turtle.Turtle()
cup.shape('square')
cup.shapesize(1.5, 1)
cup.speed(0)
cup.dy = 1
cup.dx = 2
cup.penup()
gravity = 0.1
def face_right():
cup.setheading(310)
def face_left():
cup.setheading(45)
def jump_right():
cup.dx += 3
cup.dy += 3
def jump_left():
cup.dx += -3
cup.dy += 3
def do_right():
jump_right()
face_right()
def do_left():
face_left()
jump_left()
wn.onkeypress(do_right, 'Right')
wn.onkeypress(do_left, 'Left')
wn.listen()
while True:
wn.update()
cup.dy -= gravity
cup.sety(cup.ycor() + cup.dy)
cup.setx(cup.xcor() + cup.dx)
或者如果你想要更快的移动和跳跃,
def jump_right():
cup.dx = 3
cup.dy = 3
def jump_left():
cup.dx = -3
cup.dy = 3
我的代码有一个小问题:
import turtle
wn = turtle.Screen()
wn.bgcolor('lightblue')
cup = turtle.Turtle()
cup.shape('square')
cup.shapesize(1.5, 1)
cup.speed(0)
cup.dy = 1
cup.dx = 2
cup.penup()
gravity = 0.1
def face_right():
cup.setheading(310)
def face_left():
cup.setheading(45)
def jump_right():
cup.dy *= -1
def jump_left():
cup.dx *= -1
cup.dy += gravity
def do_right():
jump_right()
face_right()
def do_left():
face_left()
jump_left()
wn.listen()
wn.onkeypress(do_right, 'Right')
wn.onkeypress(do_left, 'Left')
wn.listen()
while True:
wn.update()
cup.dy -= gravity
cup.sety(cup.ycor() + cup.dy)
cup.setx(cup.xcor() + cup.dx)
如您所见,当您 运行 代码时,“向右跳转”功能运行良好。跳左一?没那么多。我尝试通过尝试大量不同的可能组合来解决这个问题,但 none 似乎有效。我在游戏中想要的只是向右跳的功能,但是当按下左箭头键时它会向左跳。我被要求只用乌龟做一个完整的游戏,但我不知道我是否还能继续。
非常感谢!
PS 我正在使用 python 3
dx
和dy
是位置变化量。如果dx
为2,表示在一定时间内重复右移2。还有,dy
是上下位置的变化量。您通过添加或减去而不是乘以更改量来实现它。乘法会非常突然地改变位置的变化量,乘以负数意味着改变方向。以下是您的代码的修改后的代码。
import turtle
wn = turtle.Screen()
wn.bgcolor('lightblue')
cup = turtle.Turtle()
cup.shape('square')
cup.shapesize(1.5, 1)
cup.speed(0)
cup.dy = 1
cup.dx = 2
cup.penup()
gravity = 0.1
def face_right():
cup.setheading(310)
def face_left():
cup.setheading(45)
def jump_right():
cup.dx += 3
cup.dy += 3
def jump_left():
cup.dx += -3
cup.dy += 3
def do_right():
jump_right()
face_right()
def do_left():
face_left()
jump_left()
wn.onkeypress(do_right, 'Right')
wn.onkeypress(do_left, 'Left')
wn.listen()
while True:
wn.update()
cup.dy -= gravity
cup.sety(cup.ycor() + cup.dy)
cup.setx(cup.xcor() + cup.dx)
或者如果你想要更快的移动和跳跃,
def jump_right():
cup.dx = 3
cup.dy = 3
def jump_left():
cup.dx = -3
cup.dy = 3