无论我输入什么参数,速度函数都不会改变海龟的位置

2024-02-20

我制作的程序有两只海龟,一只是用户(玩家),另一只是玩家 2,它们通过一个名为 checkcollision 的函数运行,该函数确定海龟是否相交,从而将第二只海龟的 x 和 -250,250 移动到 -250,250 的随机位置y 坐标。然而问题是我希望第二只乌龟(非用户)在屏幕上沿直线移动,我将其设置为 2,并且我也尝试将其设置为正常,这样所有的操作都不会使乌龟移动。

import turtle
import random
wn = turtle.Screen()
wn.setup(width = 450, height = 450)
player = turtle.Turtle()
player2 = turtle.Turtle()

def up():

    y  = player.ycor()
    y = y + 5
    player.sety(y)
    if y>=310:
        player.sety(y-15)
    checkcollision(player,player2)

def down():
    y = player.ycor()
    y = y - 5
    player.sety(y)
    if y<-310:
        player.sety(y+15)
    checkcollision(player,player2)


def left():
    x = player.xcor()
    x = x - 5
    player.setx(x)
    if x<=-625:
        player.setx(x+15)
    checkcollision(player,player2)


def right():
    x = player.xcor()
    x = x + 5
    player.setx(x)
    if x>=625:
        player.setx(x-15)
    checkcollision(player,player2)

player.penup()
player.setpos(0,0)
player.showturtle()
player.shape("square")
wn.bgcolor("green")
player2.shape("turtle")
player2.penup()
player2.setpos(300,300)
player2.showturtle()
player2.setheading(-100)
player2.speed(2)


turtle.listen()
turtle.onkeypress(up,"Up")

turtle.onkeypress(left,"Left")

turtle.onkeypress(right,"Right")

turtle.onkeypress(down, "Down")


def checkcollision(t1,t2):
        if abs(t1.xcor() - t2.xcor()) < 10 and abs(t1.ycor() - t2.ycor()) < 10:
            player2.setpos(random.randint(-250,250), random.randint(-250,250))



checkcollision(player,player2)

您的代码有多个问题,我很惊讶它竟然能按上面所述运行。 (它应该只是落在代码的底部,关闭海龟窗口并返回到控制台。)例如,它似乎不理解它自己的坐标系——x坐标从-425到+425,但是我们正在测试海龟的 x 坐标是否为<= -625。以下是我为解决您的问题和其他问题而进行的修改:

from turtle import Screen, Turtle
from random import randint

def up():
    y = player.ycor() + 5

    if y < 200:
        player.sety(y)
        checkcollision()

def down():
    y = player.ycor() - 5

    if y > -200:
        player.sety(y)
        checkcollision()

def left():
    x = player.xcor() - 5

    if x > -200:
        player.setx(x)
        checkcollision()

def right():
    x = player.xcor() + 5

    if x < 200:
        player.setx(x)
        checkcollision()

def checkcollision():
    if player.distance(player2) < 20:
        player2.setpos(randint(-200, 200), randint(-200, 200))

screen = Screen()
screen.setup(width=450, height=450)
screen.bgcolor('green')

player = Turtle()
player.shape('square')
player.speed('fastest')
player.penup()

player2 = Turtle()
player2.shape('square')
player2.speed('slowest')
player2.color('yellow')
player2.penup()

checkcollision()

screen.onkeypress(up, 'Up')
screen.onkeypress(left, 'Left')
screen.onkeypress(right, 'Right')
screen.onkeypress(down, 'Down')
screen.listen()

screen.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无论我输入什么参数,速度函数都不会改变海龟的位置 的相关文章

  • 如何获取乌龟的位置?

    如何在Python中找到乌龟的坐标 例如 如果乌龟位于 200 300 我如何检索该位置 如Python文档所示 turtle pos 以 2D 向量形式返回海龟的当前位置 x y
  • Python 海龟不透明度?

    只是想知道 是否可以用半透明墨水绘制 填充乌龟 就像是 turtle setfillopacity 50 Would set it to 50 transparency 运行Python 2 7 你可以通过这样做 import turtle
  • 海龟图形在自身上绘制

    这应该是一个非常简单的问题 然而 事实证明这对我来说很难 我对海龟图形相当陌生 因此 我正在尝试完成简单的绘图 我的乌龟会画一行 拿起笔 向上移动一个像素 放下笔 然后继续绘画 到目前为止 这是我的代码 for y in range hei
  • 蟒蛇海龟形状

    我正在用 pythonturtle 绘制一些东西 我使用了形状函数 但是形状在它们之前过度绘制了其他形状 我可以看到形状在移动 并且我只得到了最后一个形状 up goto 200 200 down shape circle shapesiz
  • 如何在乌龟中创建按钮?

    如何在turtle python中创建一个简单的按钮 如果单击它 您可以定义它来打印消息 或者做其他更复杂的事情 You can embed正如 JoshuaNixon 在他的评论中建议的那样 tkinter 中的海龟使用 tkinter
  • 如何在乌龟图形中绘制椭圆/椭圆形?

    如何在 Python 中绘制海龟图形中的椭圆 卵形 我希望能够使用以下命令绘制椭圆和椭圆的一部分circle 函数或类似函数 我可以使用 turtlesize stretch wid None stretch len 10 outline
  • 在等待输入python时更新turtle/gui

    我正在制作一个聊天程序 但遇到一个问题 屏幕仅在输入后更新 我正在使用turtle来显示聊天 我知道 turtle对于这个目的来说并不是那么好 但它非常简单 这是我循环中的代码 while True ind userlist index u
  • Python 终止符错误

    我正在和我的一个学校朋友一起开发一个 Python 项目 我们导入了 Turtle 和 Math 我的问题是 当我使用 Esc 按钮关闭窗口时 我收到一条错误消息 Terminator Error 我问过老师 但他们也不知道问题出在哪里 因
  • Python时间延迟

    好吧 我想知道如何延迟程序的一部分而不暂停整个程序 我不一定擅长Python 所以如果可能的话 如果你能给我一个相对简单的答案 那就太好了 我想让乌龟在每次调用此函数时在屏幕上画一个圆圈 这就是我所拥有的 import time from
  • 如何组合 Tkinter 窗口?

    我有两组代码 第一部分是海龟图形窗口 第二部分是 Tkinter 窗口 我应该如何将这两个部分放在一个窗口上 我的代码的第一部分 from turtle import def move thing distance thing circle
  • 如何在 Python Turtle 中定位文本?

    例如 write First Last True align right 但具有特定的 x y 坐标 随着使用像这样的命令setposition aka goto setx or sety 在你呼叫之前定位你的乌龟write the mov
  • Python Turtle 图形键盘命令

    有人对使用键盘命令在 python 2 7 中控制海龟图形有任何见解吗 我在这个网站和其他网站上进行了广泛的研究 觉得我正在做正确的事情 但它只是不想为我工作 以下是我到目前为止所得到的 谁能告诉我哪里出错了 from turtle imp
  • 如何加速 python 的“turtle”函数并使其在最后停止冻结

    我用python写了一个乌龟程序 但是有两个问题 对于较大的数量来说 它的速度太慢了 我想知道如何才能加快乌龟的速度 它在完成后冻结 单击时显示 没有响应 到目前为止 这是我的代码 import turtle Takes user inpu
  • TurtleGraphics Python:从墙上弹起乌龟?

    所以 我试图制作一个真实的弹跳功能 海龟撞到墙壁并以相应的角度弹开 我的代码如下所示 def bounce num steps step size initial heading turtle reset top turtle window
  • 怎样才能让海龟认出一个圆圈呢?

    我正在尝试使用 Turtle Graphics 制作一个 Python 程序 在矩形内绘制两个重叠的圆圈 如维恩图 并在维恩图上绘制随机点 我已经成功地做到了这一点 但现在我想让程序识别一个点是在其中一个圆中还是在维恩图的交点中 然后我想根
  • python-画一张愤怒和惊讶的脸

    我使用这段代码并尝试更改代码以获得愤怒和惊讶的表情 但我做不到 谁能帮我 import turtle smiles turtle Turtle smiles penup smiles goto 75 150 smiles pendown s
  • Python通过鼠标点击找到最近的乌龟

    我正在使用基于海龟的网格设置创建扫雷风格的游戏 我需要找到网格内最近的单元格并显示位于其下方的图标 无论是炸弹还是数字图标 我不想做到精确 我只需要单击鼠标即可找到网格中最近的单元格 即使单击不是直接在板上 目前 我的代码仅显示板上创建的最
  • Turtle 模块 - 保存图像

    我想弄清楚如何在使用 python 的海龟模块创建绘图后保存位图或矢量图形图像 经过一番谷歌搜索后 我找不到简单的答案 我确实找到了一个名为画布2svg http wm ite pl proj canvas2svg index html 但
  • 无论我输入什么参数,速度函数都不会改变海龟的位置

    我制作的程序有两只海龟 一只是用户 玩家 另一只是玩家 2 它们通过一个名为 checkcollision 的函数运行 该函数确定海龟是否相交 从而将第二只海龟的 x 和 250 250 移动到 250 250 的随机位置y 坐标 然而问题
  • 属性错误:“列表”对象没有属性“拆分”

    我正在尝试读取一个文件并用逗号分隔每行中的一个单元格 然后仅显示第一个和第二个单元格 其中包含有关纬度和经度的信息 这是文件 time 纬度 经度 类型2015 03 20T10 20 35 890Z 38 8221664 122 7649

随机推荐