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
定义一个函数,用来让男孩向左移动
def move_left():
# 获取男孩当前的x坐标,并减去男孩的速度,得到新的x坐标
x = boy.xcor() – BOY_SPEED
# 如果新的x坐标小于屏幕左边界加上男孩的大小的一半,则将新的x坐标设置为屏幕左边界加上男孩的大小的一半,防止男孩移出屏幕
if x 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 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)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 2023跟我一起学设计模式:Golang 抽象工厂模式讲解和代码示例
Golang 抽象工厂模式讲解和代码示例 抽象工厂是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。 抽象工厂定义了用于创建不同产品的接口, 但将实际的创建工作留给了具体工厂类。 每个工厂类型都对应一个特定的产品变体。 在创建产品时, 客…