欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Level2.8蛇与海龟(游戏)

Level2.8蛇与海龟(游戏)

2025/5/18 20:36:12 来源:https://blog.csdn.net/m0_65273147/article/details/148032070  浏览:    关键词:Level2.8蛇与海龟(游戏)
#小龟快跑游戏  输入难度(1-5),蛇追到龟,游戏结束
#分析问题:从局部==>整体
#游戏画面:创建画笔(海龟+蛇)==>1.海龟移动(键盘控制)==>2.蛇(自动追踪,海龟位置)==>3.海龟(限定范围,防止跑出画布之外)==>4.游戏(得分、难度)

1.海龟移动(键盘控制)
2.蛇(自动追踪,海龟位置)

(1)坐标方位角

坐标方位角:坐标系中的某一直线与x轴正方向之间的夹角。

(2)setheading()方法

改变画笔朝向,的坐标方位角。setheading(90)

(3)towards() 方法

当画布上有两只画笔时,它可以获取两个画笔之间相邻的直线,与x轴形成的角度

就是能获取这条直线的“坐标方位角"。

snake.towards(t)        #蛇朝向海龟

towards方法可以获取2只画笔连成直线,与x轴围成的坐标方位角,范围0~360度。


3.海龟(限定范围,防止跑出画布之外)

海龟的x<200,如何获取x的移动坐标呢?

xcor()方法---------获取x坐标
ycor()方法---------获取y坐标

海龟在画布上:(t.xcor(),t.ycor())

若海龟在图上位置,再前进“按下Up键”,就会超出200范围,是不允许的。在函数up里,添加限定条件:

右边界线:

if t.xcor()>200:

     t.goto(200,t.ycor())

(1)边界线:(上、下、左、右)

def up():checkbound()    #调用分装好的函数(边界:上下左右)
def down():t.backward(10)checkbound()
def left():t.left(45)
def right():t.right(45)def checkbound():   #函数封装(边界:上下左右)t.forward(10)if t.xcor()>200:t.goto(200,t.ycor())if t.ycor()>200:t.goto(t.xcor(),200)if t.xcor()<-200:t.goto(-200,t.ycor())if t.ycor()<-200:t.goto(t.xcor(),-200)
(2)画出边界线:(上、下、左、右) 

#画出边界线
turtle.penup()
turtle.goto(200,200)
turtle.pendown()
turtle.color("red")
turtle.pensize(3)
for i in range (4):turtle.right(90)turtle.forward(400)
(3)变量修改 边界线大小:(上、下、左、右) 等比例变大变小
boxsize=300def checkbound():   #函数封装(边界:上下左右)t.forward(10)if t.xcor()>boxsize:t.goto(boxsize,t.ycor())if t.ycor()>boxsize:t.goto(t.xcor(),boxsize)if t.xcor()<-boxsize:t.goto(-boxsize,t.ycor())if t.ycor()<-boxsize:t.goto(t.xcor(),-boxsize)#画出边界线
turtle.penup()
turtle.goto(boxsize,boxsize)
turtle.pendown()
turtle.color("red")
turtle.pensize(3)
for i in range (4):turtle.right(90)turtle.forward(boxsize*2)


4.游戏(得分、难度)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词