python中利用turtle(海龟)绘图制作龟兔赛跑动画——仅供学习哦

首先,欢迎大家来我的博客当中浏览,由于我和我的可爱现在还都个初学者,所作的东西还不够完善,之前在学习计算机的各种语言的过程中,在csdn平台上得到了许多的帮助。所以我和我的可爱先把我们做的东西放在这个平台上,期待与大家的共同交流。

这次是一个简单的python程序。利用python中自带的库,以及pygame库实现龟兔赛跑的动画。

强调,一定要安装pygame库哦!

好,话不多说,我们直接上代码!

from turtle import *#从turtle库中引入所有的命令

import turtle as t#引入turtle库把它叫做t

import pygame as p#引入turtle库把它叫做p

p.init()#初始化p的所有模块

#设置标题

t.title("欢迎来到海龟运动会之神奇海龟对决兔子")

#设置背景色

t.bgcolor("pink")

#小红旗

t.penup()

t.speed(1)

t.goto(200,0)

t.pendown()

t.color("red")

t.begin_fill()

t.left(90)

t.forward(60)

t.right(90)

t.forward(40)

t.right(150)

t.forward(50)

t.end_fill()

t.penup()

#兔子

rabbit=Turtle()#定义兔子

rabbit.hideturtle()#让兔子隐形

rabbit.shape('turtle')#兔子的形状是一只海龟(滑稽脸)

rabbit.color("green")

rabbit.up()#将兔子移动到起点,准备比赛

rabbit.back(300)#把兔子往后移300

rabbit.showturtle()#让兔子显露出来

rabbit.down()#兔子移动时划线

def rabbitmove():#定义一个新的函数 兔子移动

if usedtime<50:#如果用时小于50

rabbit.forward(3)#兔子向前奔跑

rabbit.color("green")#兔子的颜色是绿色

elif usedtime<415:#如果用时 50<=usedtime<415 兔子就去睡觉,位移不变

rabbit.forward(0)#兔子向前0

else:#否则就追赶

rabbit.forward(6)#兔子向前4

#乌龟

tortoise=Turtle()#引入乌龟图案

tortoise.hideturtle()#让乌龟隐形

tortoise.shape('turtle')#确定乌龟的形状

tortoise.color("purple")#确定乌龟的颜色

tortoise.pensize(3)#确定笔画的粗细

tortoise.up()#将乌龟移动到起点,准备比赛

tortoise.back(300)#将乌龟后移300

tortoise.showturtle()#把乌龟显露出来

tortoise.down()#乌龟移动时划线

def tortoisemove():#定义一个新的函数 乌龟移动

tortoise.forward(1)#乌龟一直在缓慢的爬行

if usedtime%2==0:

tortoise.color("purple")

else:

tortoise.color("red")

#背景音

def musics():

file=r'C:\Users\郭钊\Desktop\work space\1.mp3'

p.mixer.init()#初始化混音器

p.mixer.music.load(file)#加载文件

p.mixer.music.play()#播放音乐

usedtime=0#定义用时 赋初值为0

def move():#定义函数 移动

global usedtime#全局形式 移动均参照usedtime

rabbitposition = rabbit.xcor()#兔子的位置是兔子的x坐标

tortoiseposition = tortoise.xcor()#乌龟的位置是乌龟的x坐标

if max(rabbitposition,tortoiseposition)>200:#如果兔子和乌龟的位置中最大的超过200

writer= Turtle()#writer定义为Turtle

writer.hideturtle()#隐藏乌龟(兔子)

if tortoiseposition >200:#如果乌龟的位置大于200

msg='Tortoise win!'#给msg(message)赋值字符串 rabbit win!

else:#否则就给msg赋字符串 tortoise win!

msg ='Rabbit win!'

writer.write(msg, align='center', font=('simfang', 30,'bold'))#模块写入设置

#输入字样 对齐方式 字体为仿宋,30号,黑体的

p.mixer.music.fadeout(700)#控制音乐淡出

else:#否则就移动

rabbitmove()#兔子移动

tortoisemove()#乌龟移动

ontimer(move,100)#定时让它们有动画效果

usedtime= usedtime+1#循环,用时+1

musics()

ontimer(move,100)#比赛开始,定时

ok! 代码书写完成,第一次用这种的,有些不太习惯,可能会因此使得代码里面有多或者少空格的地方,导致程序无法正常运行(因为python是一个强格式的语言)。小伙伴们一定要记得检查呀。接下我们讲解实现过程。

这个程序是我和我的可爱在经过一周的python小学期后的答辩程序。在确定主题时,我的可爱说要用龟兔赛跑,我当然无条件的支持。

所谓龟兔赛跑,当然得有“兔”和“龟”,龟好实现,但是兔子不好实现,只能也由龟来替代。正如代码块

rabbit=Turtle()#定义兔子

rabbit.hideturtle()#让兔子隐形

rabbit.shape('turtle')#兔子的形状是一只海龟(滑稽脸)

rabbit.color("green")

rabbit.up()#将兔子移动到起点,准备比赛

rabbit.back(300)#把兔子往后移300

rabbit.showturtle()#让兔子显露出来

rabbit.down()#兔子移动时划线

#乌龟

tortoise=Turtle()#引入乌龟图案

tortoise.hideturtle()#让乌龟隐形

tortoise.shape('turtle')#确定乌龟的形状

tortoise.color("purple")#确定乌龟的颜色

tortoise.pensize(3)#确定笔画的粗细

tortoise.up()#将乌龟移动到起点,准备比赛

tortoise.back(300)#将乌龟后移300

tortoise.showturtle()#把乌龟显露出来

tortoise.down()#乌龟移动时划线

当你只引入一次时,不管怎么动,永远都只有一个小乌龟在动,那就不能叫做龟兔赛跑了。实现方法就像上面那样,以下为简易版本

from turtle import *

turtle=Turtle()

turtle.shape('turtle')

turtle.forward(200)

rabbit=Turtle()

rabbit.shape('turtle')

这样就会出现两只小乌龟了。推类,三只,四只,十只是不是也很简单呐。

作为比赛,总得有个起点与终点吧?

#小红旗

t.penup()

t.speed(1)

t.goto(200,0)

t.pendown()

t.color("red")

t.begin_fill()

t.left(90)

t.forward(60)

t.right(90)

t.forward(40)

t.right(150)

t.forward(50)

t.end_fill()

t.penup()

这段代码是我认为在整个代码中比较出彩的。因为它的位置在整个代码的最开头,所以它最先执行,在视觉效果上如同先由“裁判”确定一个终点似的。

之后便是定义函数了,python的优势就是它便于理解,这里面我定义的函数都比较简单,所用到的结构仅仅是简单的判断与循环。通过usedtime来控制整个动画中移动的物体。不断地加一不断地移动,不断的变化。利用ontimer定时器,在特定的时间后,调用move函数,使得整个动画具有很哈动画效果。尤其注意背景音乐用了pygame库,这个库并非python自带的,所以大家如果想要正常运行程序,需要安装pygame的库哦。网上的安装教程也有很多哦。其中musics函数还需要小伙伴们的电脑中有一个mp3类型的音乐文件支撑,file 后的文件位置换成你想要播放的mp3文件的位置即可。

好啦,其实代码上的注释已经很多,相信大家都会明白的。如果有疑问可以加我的QQ:1056966958 我们一起交流沟通呀!记得加上备注,不然我会以为你是卖片的(滑稽)

好啦,就到这里啦,谢谢大家哦!

python海龟绘图颜色_python中利用turtle(海龟)绘图制作龟兔赛跑动画——仅供学习...相关推荐

  1. python中利用turtle(海龟)绘图制作龟兔赛跑动画——仅供学习

    python中利用turtle(海龟)绘图制作龟兔赛跑动画--仅供学习哦 首先,欢迎大家来我的博客当中浏览,由于我和我的可爱现在还都个初学者,所作的东西还不够完善,之前在学习计算机的各种语言的过程中, ...

  2. python海龟绘图颜色_Python中的高级turtle(海龟)作图(续)

    四.填色 color 函数有三个参数.第一个参数指定有多少红色,第二个指定有多少绿色,第三个指定有多少蓝色.比如,要得到车子的亮红色,我们用 color(1,0,0),也就是让海龟用百分之百的红色画笔 ...

  3. python库怎么绘画_python中的turtle库(图形绘画库)

    turtle绘图的基础知识: 1. 画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwid ...

  4. python短期预测图_Python中利用长短期记忆模型LSTM进行时间序列预测分析

    原文链接:http://tecdat.cn/?p=6663 此示例中,神经网络用于使用2011年4月至2013年2月期间的数据预测都柏林市议会公民办公室的能源消耗. 每日数据是通过总计每天提供的15分 ...

  5. python redis 消息队列_python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  6. python改变背景颜色_python中绘图时怎么改背景颜色?

    python中一般使用matplotlib库进行绘图,下面我们就来看一下python中绘图时修改背景颜色的方法: 子图可以对plt.subplot的参数做修改,下面是对子图的背景颜色修改代码:impo ...

  7. python怎样填充颜色_python中如何给图形填充颜色

    使用Turtle不只可以画线条,也可以将画出的封闭线条进行填充. -设定填充色:fillecolor(r, g, b) -开始填充:begin_fill() -结束填充:end_fill() 画一组随 ...

  8. python有什么颜色_Python中常见颜色记录

    python中常见绘图的颜色选择 常见颜色 可选的颜色库 颜色名称对应的颜色码 names = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', ...

  9. python饼图添加颜色_Python中的五颜六色的饼状图!(二)

    [5x00]突出显示扇形块 explode 参数可以实现突出显示某一块扇区,接收数组形式的参数,这个数组中的元素个数应该是 len(x),即和扇区块的数量相同.import matplotlib.py ...

最新文章

  1. Spring Task定时任务的配置和使用详解
  2. HighNewTech:2019.08.08华为发布—面向2025十大趋势
  3. mysql查询有数据但返回null_Mybatis查不到数据查询返回Null问题
  4. Linux操作系统多线程信号总结(转)
  5. mysql怎么拆字符串_MySQL截取和拆分字符串函数用法示例
  6. 户外lisp导向牌如何安装_深圳医院导向标识牌制作按功能可分为哪些?
  7. python程序设计和c语言_C 语言和 Python,该从哪个入门编程?
  8. shell循环和函数引用
  9. 计算机系统结构02325知识点,02325计算机系统结构复习资料.doc
  10. 使用Scikit Learn的分类器探索Iris数据集
  11. vsftpd安装与配置
  12. 项目启动时,出现了Consider defining a bean of type ‘xxx’ in your configuration 问题。
  13. 怎样维修无图纸电路板?
  14. 威漫哨兵机器人_漫威:哨兵机器人天下无敌?这几位变种人就不把他们放在眼里...
  15. 11.智能快递柜(用户寄件)
  16. suse12中pip install xxx报错gcc: error: unrecognized command line option ‘-fstack-clash-protection’
  17. Android开发之关机广播
  18. 天瑞达安科技集团:Java工程师能从事什么工作,不单是程序员!!
  19. 原来地图导航结合WebAR技术还能这么玩
  20. 建国以来的全套人民币图片

热门文章

  1. 短信为各行业提供营销方案
  2. ftp服务器显示503,NET FTP Response error:(503) 的解决方法
  3. 世界杯期间,抖音的涨粉秘诀是什么?
  4. 解决遗留问题:@PostConstruct注入不成功
  5. Spyder上安装TensorFlow环境教程
  6. matlab 小波阈值去噪函数简介
  7. Linux下通过Wine安装微信
  8. 列出每位学生的各科成绩,要求输出格式:姓名、学号、语文成绩、数学成绩、英语成绩,SQL怎么编写?
  9. HDU 1530 Maximum Clique 最大团
  10. 统计字符数组中26个英文字母的个数