Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >跟踪海龟的位置,让另一只乌龟去那里

跟踪海龟的位置,让另一只乌龟去那里
EN

Stack Overflow用户
提问于 2020-05-18 16:38:01
回答 2查看 265关注 0票数 1

我正在使用海龟模块的Python,我试图做一个游戏。我正试着让一只乌龟射出另一只乌龟作为子弹。我想不出如何追踪射击龟的xcor()ycor(),然后再把子弹龟运到那里。这是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Projectiles

bullet = turtle.Turtle()
bullet.hideturtle()
bullet.color('purple')
bullet.shape('circle')
bullet.penup()
bullet.shapesize(0.5, 0.5)

bulletspeed = 0


# The player  

player = turtle.Turtle()
player.speed(0)
player.color('blue')
player.shape('triangle')
player.penup()
player.setposition(0, -250)
player.setheading(90)

x = player.xcor()
y = player.ycor()
ph = player.heading()

def right():
    player.right(30) 

def left():
    player.left(30)

def increasespeed():
    global speed
    speed += 1

def decreasespeed():
    global speed
    speed -= 1

def bulletmove():
    global bulletspeed
    bullet.pos() == player.pos()
    bullet.showturtle()
    bulletspeed += 10


# Keybindings

turtle.listen()
turtle.onkey(left, 'Left')
turtle.onkey(right, 'Right')
turtle.onkey(increasespeed, 'Up')
turtle.onkey(decreasespeed, 'Down')
turtle.onkey(bulletmove, 'space')
EN

回答 2

Stack Overflow用户

发布于 2020-05-18 20:50:59

在这里,我完全修改了你的代码。这仍然是一个小问题,但这是因为turtle模块本身。我不得不让球员掉头,但这很有效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import turtle

# Projectiles

bullet = turtle.Turtle()

bullet.color('purple')
bullet.penup()
bullet.speed("fastest")
bullet.hideturtle()
bullet.shape("circle")

bullet.setposition(0, -250)



bulletspeed = 0

s = turtle.Screen()
# The player  


player = turtle.Turtle()
player.speed("fastest")
player.color('blue')
player.shape('triangle')
player.penup()
player.setposition(0, 0)
player.setheading(90)
#player.hideturtle()
x = player.xcor()
y = player.ycor()
ph = player.heading()
player.right(180)

speed = 5

def right():
    player.right(30) 

def left():
    player.left(30)

def increasespeed():
    global speed
    speed += 1

def decreasespeed():
    global speed
    speed -= 1


def bulletmove():
    global bulletspeed
    bullet.hideturtle()
    turtlex = 0
    turtley = -250
    bullet.setposition(turtlex, turtley)

    bullet.reset()
    bullet.penup()

    bullet.goto(0, -250)




# Keybindings

turtle.listen()
turtle.onkey(left, 'Left')
turtle.onkey(right, 'Right')
turtle.onkey(increasespeed, 'Up')
turtle.onkey(decreasespeed, 'Down')
turtle.onkey(bulletmove, 'space')

#s.tracer(0, 0)
s.exitonclick()

另外,我建议用一颗移动的子弹来做一个游戏,使用海龟是不可取的。我建议吡咯

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2020-05-18 21:53:36

不要相信试图在另一个图书馆卖给你的人给你的一个海龟例子。我并不是说游戏对这类程序没什么好处,只是海龟的能力经常被低估。

下面是你的代码重写,允许你旋转和射击-多个子弹在一次!为了保持示例的简单性,我抛出了您的增减速度功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from turtle import Screen, Turtle

def right():
    player.right(30)
    screen.update()

def left():
    player.left(30)
    screen.update()

def move_bullet(bullet):
    screen.onkey(None, 'space')  # disable handler inside handler

    if bullet.distance(player) < 300:
        bullet.forward(10)
        screen.ontimer(lambda: move_bullet(bullet), 100)
    else:
        bullet.hideturtle()
        bullets.append(bullet)  # reduce, reuse & recycle

    screen.update()
    screen.onkey(fire_bullet, 'space')  # reenable handler

def fire_bullet():
    bullet = bullets.pop() if bullets else bullet_prototype.clone()

    bullet.setposition(player.position())
    bullet.setheading(player.heading())
    bullet.showturtle()

    move_bullet(bullet)

screen = Screen()
screen.tracer(False)

bullet_prototype = Turtle()
bullet_prototype.hideturtle()
bullet_prototype.shape('circle')
bullet_prototype.shapesize(0.5)
bullet_prototype.color('purple')
bullet_prototype.penup()

bullets = []

player = Turtle()
player.shape('triangle')
player.color('blue')
player.penup()
player.setheading(90)

screen.onkey(left, 'Left')
screen.onkey(right, 'Right')
screen.onkey(fire_bullet, 'space')
screen.listen()

screen.update()
screen.mainloop()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61881314

复制
相关文章
python 学习总结3
该程序运用到了python的标准库Turtle,那么什么是Turtle,他又能用来干什么呢?
py3study
2020/01/19
4840
数学:无限循环小数到那里去啦?
无限循环小数到那里去啦? --------------------------- 类型1.化纯循环小数为分数. --------------------------- ---------------
哆哆Excel
2022/10/25
3180
数学:无限循环小数到那里去啦?
海龟交易_海龟交易法则的核心
入行十多年,见过不少充满灵性的投资人,选股能力非常出色,但是在买卖时机、投入资金多寡上的不足使得他们的盈利水平并不理想。没有别的原因,是缺少一个交易系统。一个完整的交易系统,包括: · 市场—-买卖什么 · 入市规模—-买卖多少 · 入市—-何时买卖 · 止损—-何时卖退出亏损的股票 · 离市—-何时卖出赢利的股票 · 策略—-如何买卖
全栈程序员站长
2022/09/20
1K0
ROS 2启动-launch-
到目前为止,在教程中,一直在为运行的每个新节点打开新终端。当创建越来越多的节点同时运行更复杂的系统时,打开终端并重新输入配置详细信息将变得乏味和低效。
zhangrelay
2019/12/19
1.8K0
借助CatGPT让turtlesim小乌龟画曲线
注意这里是CatGPT,不等同OpenAI的ChatGPT,但是用起来十分方便,效果也还行。
zhangrelay
2023/03/07
1.1K0
借助CatGPT让turtlesim小乌龟画曲线
啥是佩奇?用 Python 画给你看
内容来源:作者——丁彦军,一名痴恋于 Python 的码农,个人公号:「恋习Python」,在这里我们一起用Python 做些有意义的事。
IT大咖说
2019/05/07
8330
啥是佩琦?用Python画给你看!
看着爷爷满村子找佩奇,我有点心疼了。为此我想用纯粹的Python来告诉爷爷,啥是佩奇?
量化投资与机器学习微信公众号
2019/02/26
9920
求你了,别再用 pip 那乌龟的速度去安装库了!
学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的,比如,由鼎鼎大名的 K 神开发的爬虫必不可少的 requests 库,一般都是必装的库吧。安装第三方库当然还是用 pip 命令安装最方便了。
小F
2020/12/02
4790
求你了,别再用 pip 那乌龟的速度去安装库了!
Python20秒画完小猪佩奇“社会人”
观察这个图像可以发现,小猪佩奇在构图基本是各种曲线,类抛物线、类圆、类椭圆、类二次贝塞尔曲线。这里说的都是“类”,这也正是小猪佩奇的构图精髓,一种手绘风格,而不是标准刻板的线条。在前端技术选型上,画图首先想到的是svg、canvas,但它们本身就擅长画图,而且网上都有在线编辑svg的工具,这就没意思了,我想佩奇也不会答应的。于是我想用纯粹的Python来做,这样更有挑战,因为画图画曲线不是Python擅长的事情。
数据森麟
2019/09/27
8020
Python20秒画完小猪佩奇“社会人”
20秒画完小猪佩奇“社会人”,程序猿的手法是你想不到的独特
今年社交平台上最火的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇。
小小詹同学
2018/07/24
9470
20秒画完小猪佩奇“社会人”,程序猿的手法是你想不到的独特
悄悄告诉你,Python 里面有一只小乌龟
众所周知,Python 生态里面有数不尽的第三方库。所以大家在写程序的时候,总是到处去寻找各种各样的第三方库。
青南
2020/02/19
1.4K0
悄悄告诉你,Python 里面有一只小乌龟
turtle(海龟作图),C++版「建议收藏」
Logo的原型来自另一个计算机语言LISP,派普特修改了LISP的语法使其更易于阅读。Logo常被称作没有括号的Lisp。
全栈程序员站长
2022/09/14
2.6K0
让Docker决定写入的位置
这样做的好处就是可以节省硬盘空间,也利于复用等等。因为Docker基于镜像创建容器的时候,其镜像是共享的;而且镜像里面的层如果已存在,也无需再下载。
solenovex
2022/11/24
1.2K0
让Docker决定写入的位置
海龟图c语言编程,【编程课堂】海龟作图
turtle是 python 内置的一个比较有趣味的模块,俗称 海龟作图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。
全栈程序员站长
2022/09/14
1.7K0
海龟图c语言编程,【编程课堂】海龟作图
Python—海龟作图
1、因为海龟作图需要用到”turtle“库,所以先介绍库的三种引用方法: (1):from 库名 import 函数名/ * ; (2):import 库名 ——>使用时:库名.函数名 (3):import 库名 as 函数名 2、turtle的使用方法: (1)Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
全栈程序员站长
2022/09/15
7500
Python—海龟作图
#6.1# 用python画出你的童年回忆
又到一年一度的国际儿童节,作为逢节必过的程序猿,怎么可以放过这个学习技能的机会呢?
朱小五
2020/06/04
1.1K2
#6.1#  用python画出你的童年回忆
【python入门系类课程 第三课 神奇的画笔】
本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
叶子陪你玩
2020/03/12
1.1K0
Python 海龟绘图:turtle库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 海龟绘图:turtle库的使用 ---- Python 海龟绘图:turtle库的使用 1.turtle简介 2.turtle基础知识 2.1 画布 2.2 画笔 2.2.1 画笔的状态 2.2.2 画笔的属性 2.2.3 绘图命令 2.2.3.1 画笔运动命令 2.2.3.2 画笔控制命令 2.2
小嗷犬
2022/11/15
2.6K0
Python 海龟绘图:turtle库的使用
【Python】双十一,就用turtle画个单身狗送给自己
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一只小乌龟,在一个横轴为x、纵轴为y的坐标系内,从原点(0,0)位置开始,它根据一组函数指令,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
黄博的机器学习圈子
2020/11/17
8060
【Python】双十一,就用turtle画个单身狗送给自己
从吉日嘎拉那里学到的……
多个列表框联动,不算是啥大问题,但是却挺麻烦,那么怎么才能够尽量方便一点呢?网上搜了一下,没发现太好用的,于是就自己写了一个。基于jQuery,无限级联动,支持下拉列表框和列表框。 先说一下步骤和使用方法: 1、在页面里设置列表框 城市:<select name="c5118020" id="ctrl_001" > <option value="-99999">请选择</option><option value="1">沈阳</option><option value="2">抚顺</op
用户1174620
2018/02/26
1K0

相似问题

如何让海龟走向另一只乌龟的位置?

25

让乌龟追上另一只乌龟

10

如何让一只乌龟并排跟着另一只乌龟?

116

让一只巨蟒追逐另一只乌龟

12

如何让一只乌龟从另一只乌龟的端点开始?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文