您现在的位置是:首页 >学无止境 >Python来写一个童话故事网站首页学无止境

Python来写一个童话故事

quintin007 2024-07-02 18:01:02
简介Python来写一个童话故事

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)

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。