<>Python来写一个童话故事

主题:冒险,
风格:惊险,
人物:男孩,
地点:海底。

<>循环遍历鱼列表中的每一条鱼
for fish in fishes: # 获取男孩和鱼的坐标和距离 boy_x, boy_y = boy.position() fish_x,
fish_y = fish.position() distance = ((boy_x - fish_x) ** 2 + (boy_y - fish_y)
** 2) ** 0.5 # 如果距离小于男孩和鱼的大小之和,则表示碰撞发生了 if distance < (BOY_SIZE + FISH_SIZE) /
2: # 播放一段音效,表示吃到了鱼 winsound.PlaySound("eat.wav", winsound.SND_ASYNC) #
增加分数,并更新计分板上的分数显示 score += SCORE_PER_FISH update_score() # 让鱼重新出现在随机位置上
fish.goto(random.randint(-SCREEN_WIDTH / 2 + FISH_SIZE / 2, SCREEN_WIDTH / 2 -
FISH_SIZE / 2), random.randint(-SCREEN_HEIGHT / 2 + FISH_SIZE / 2,
SCREEN_HEIGHT / 2 - FISH_SIZE / 2))
<>定义一个函数,用来让男孩向左移动

def move_left():
# 获取男孩当前的x坐标,并减去男孩的速度,得到新的x坐标
x = boy.xcor() - BOY_SPEED
# 如果新的x坐标小于屏幕左边界加上男孩的大小的一半,则将新的x坐标设置为屏幕左边界加上男孩的大小的一半,防止男孩移出屏幕
if x < -SCREEN_WIDTH / 2 + BOY_SIZE / 2:
x = -SCREEN_WIDTH / 2 + BOY_SIZE / 2
# 让男孩移动到新的x坐标和原来的y坐标上
boy.goto(x, boy.ycor())

<>定义一个函数,用来让男孩向右移动

def move_right():
# 获取男孩当前的x坐标,并加上男孩的速度,得到新的x坐标
x = boy.xcor() + BOY_SPEED
# 如果新的x坐标大于屏幕右边界减去男孩的大小的一半,则将新的x坐标设置为屏幕右边界减去男孩的大小的一半,防止男孩移出屏幕
if x > SCREEN_WIDTH / 2 - BOY_SIZE / 2:
x = SCREEN_WIDTH / 2 - BOY_SIZE / 2
# 让男孩移动到新的x坐标和原来的y坐标上
boy.goto(x, boy.ycor())

<>定义一个函数,用来让男孩向上移动

def move_up():
# 获取男孩当前的y坐标,并加上男孩的速度,得到新的y坐标
y = boy.ycor() + BOY_SPEED
# 如果新的y坐标大于屏幕上边界减去男孩的大小的一半,则将新的y坐标设置为屏幕上边界减去男孩的大小的一半,防止男孩移出屏幕
if y > SCREEN_HEIGHT / 2 - BOY_SIZE / 2:
y = SCREEN_HEIGHT / 2 - BOY_SIZE / 2
# 让男孩移动到原来的x坐标和新的y坐标上
boy.goto(boy.xcor(), y)

<>定义一个函数,用来让男孩向下移动

def move_down():
# 获取男孩当前的y坐标,并减去男孩的速度,得到新的y坐标
y = boy.ycor() - BOY_SPEED
# 如果新的y坐标小于屏幕下边界加上男孩的大小的一半,则将新的y坐标设置为屏幕下边界加上男孩的大小的一半,防止男孩移出屏幕
if y < -SCREEN_HEIGHT / 2 + BOY_SIZE / 2:
y = -SCREEN_HEIGHT / 2 + BOY_SIZE / 2
# 让男孩移动到原来的x坐标和新的y坐标上
boy.goto(boy.xcor(), y)

<>定义一个函数,用来让鲨鱼自动追逐男孩,并改变方向和速度

def move_shark():
global SHARK_SPEED # 声明SHARK_SPEED是全局变量,可以在函数内部修改它的值
# 获取鲨鱼和男孩当前的角度和距离(使用数学公式)
shark_angle = shark.towards(boy.position())
shark_distance = shark.distance(boy.position())
# 计算鲨鱼需要转动多少度才能朝向男孩(使用数学公式)
angle_diff = (shark_angle - shark.heading()) % 360 - 180
# 如果角度差大于10度,则让鲨鱼转动10度,否则让鲨鱼转动角度差(使用if-else语句)
if abs(angle_diff) > 10:
shark.left(10 * angle_diff / abs(angle_diff))
else:
shark.left(angle_diff)

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信