我的代码有点问题:
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)正如您所看到的,当您运行代码时,“向右跳”函数工作得很好。跳楼留下了一个吗?没那么多。我试过通过尝试大量不同的可能组合来解决这个问题,但似乎都没有效果。我在游戏中想要的是跳转右边的功能,但相反,当左箭头键按下时,它会向左跳。我被给予了一个挑战,想要和海龟打一场完整的比赛,但我不知道我是否还能继续比赛。
提前谢谢你!
我正在使用python 3
发布于 2022-02-24 05:21:36
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 = 3https://stackoverflow.com/questions/71247245
复制相似问题