Python如何导入海龟绘图库并制作贪吃蛇游戏
Admin 2022-07-23 群英技术资讯 666 次浏览
如图显示
导入海龟绘图库
from turtle import * from random import randrange
常量设置
food_x = randrange(-20, 20) * 20 food_y = randrange(-20, 20) * 20 snack = [[0, 0], [20, 0], [40, 0], [40, 20]] dir_x = 20 dir_y = 0
主函数
if __name__ == '__main__': # 设置主窗口的大小和位置 # width,height,startx,starty(初始位置距离屏幕左边和右边多少,默认中间) setup(800, 800) # 禁用海龟动画 tracer(False) loop_view() listen() onkey(lambda: control(0, 20), "w") onkey(lambda: control(0, -20), "s") onkey(lambda: control(-20, 0), "a") onkey(lambda: control(20, 0), "d") # 开始事件循环 # 调用 Tkinter 的 mainloop 函数 # 必须作为一个海龟绘图程序的结束语句 done()
画正方形
def draw_square(x, y, size, color_name): ''' 画正方形 :param x 表示在画布的x位置 :param y 表示画布的y位置 :param size 表示正方形的长度 :param color_name 表示正方形的颜色 :return ''' # 画笔抬起,移动的时候不画线 up() # 是海龟不可见 ht() # 将海龟移动到这个位置 goto(x, y) # 画笔落下 -- 移动时将画线 down() color("red", color_name) begin_fill() forward(size) left(90) forward(size) left(90) forward(size) left(90) forward(size) left(90) end_fill() pass
在画布上画食物和蛇
def loop_view(): ''' 循环界面 ''' global food_x, food_y if not is_zhangqiang(): return snack.append([snack[-1][0] + dir_x, snack[-1][1] + dir_y]) if snack[-1][0] != food_x or snack[-1][1] != food_y: snack.pop(0) else: food_x = randrange(-20, 20) * 20 food_y = randrange(-20, 20) * 20 clear() # 画食物 draw_square(food_x, food_y, 20, "red") # 画蛇 for s in range(len(snack)): if s == len(snack) - 1: draw_square(snack[s][0], snack[s][1], 20, "yellow") continue draw_square(snack[s][0], snack[s][1], 20, "black") ontimer(loop_view, 100) # 执行一次 TurtleScreen 刷新。在禁用追踪时使用 update()
控制方向
def control(x,y): global dir_x, dir_y dir_x = x dir_y = y
碰撞检测
def is_zhangqiang(): if -400 <= snack[-1][0] <= 380 and -400 <= snack[-1][1] <= 380: return True else: return False
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python中adfuller()函数作用与用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
python编码格式导致csv读取错误问题(csv.reader, pandas.csv_read),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
在python,还有一个写入文件的方法,那就是和它长得很像的writeline函数。这两者具体如何使用,有什么区别吗?本文小编从参数、格式、用法和具体使用向大家介绍python中write和writelines的区别。
这篇文章给大家分享的是如何用怎样用python绘制雷达图的内容。雷达图相比其他标图有其优势和特点,能应用的场景也很多,小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
通过pandas的使用,我们经常要交互式地展示表格(dataframe)、分析表格。本文整理了8个常用的配置选项,使用可以提高很多效率,需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008