当前位置:首页>python>小学生Python进阶:turtle第13课·弹跳的小球

小学生Python进阶:turtle第13课·弹跳的小球

  • 2026-10-11 08:14:01
小学生Python进阶:turtle第13课·弹跳的小球

小学生Python进阶:turtle第13课·弹跳的小球

第29篇:弹跳的小球

🚀 前置课程:第28篇 - 创意图案


A 什么是动画?

你有没有想过电视里的动画片是怎么动起来的?

其实很简单——每秒播放很多张图片,每张图片和上一张有一点差别。因为切换太快眼睛看不出来,我们就觉得画面在"动"了!

turtle 也可以画动画!今天我们来做一个小球,让它在屏幕上弹来弹去。


B 代码示例

import turtle
import time

<h1>创建画布</h1> screen = turtle.Screen() screen.setup(600, 400) screen.bgcolor("#f0f0f0") screen.title("弹跳的小球")

<h1>创建小球</h1> ball = turtle.Turtle() ball.shape("circle") ball.fillcolor("#ff6b6b") ball.penup() ball.goto(0, 150) # 从高处开始

<h1>小球初始速度</h1> dx = 3 # 水平速度 dy = 0 # 垂直速度 gravity = -0.5 # 重力

<h1>弹跳范围</h1> floor_y = -150 wall_x = 280

while True: # 应用重力 dy += gravity # 移动小球 x = ball.xcor() + dx y = ball.ycor() + dy ball.goto(x, y) # 碰到地面弹起来 if y < floor_y: dy = -dy * 0.9 # 反弹,损失一点能量 ball.sety(floor_y) # 碰到墙壁反弹 if x > wall_x or x < -wall_x: dx = -dx # 稍微停顿,制造动画效果 time.sleep(0.02)

<h1>点击窗口退出</h1> screen.exitonclick()

C 运行效果

运行代码,你会看到:

  • 🔴 红色小球从高处落下
  • 🚀 受重力影响越落越快
  • ⚡ 碰到地面后弹起来
  • 🎯 来回碰撞墙壁

多运行几次观察,看看小球每次弹起来的高度有什么变化?


D 本篇知识点

知识点说明
--------------
`time.sleep()`控制动画速度,数字越小越流畅
变量更新每帧改变 x、y 坐标
条件判断碰到边界就反过来

E 挑战题

🏅 初级:把小球改成蓝色

>

🏅 中级:让小球弹得更高(调大反弹系数)

>

🏅 高级:再加一个黄色小球,两个球一起弹

下篇预告

第30篇我们将学到彩虹色环,用 turtle 画出一道美丽的彩虹🌈


⬇️ 公众号底部对话框回复"29"获取源代码

最新文章

随机文章