Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt

上传人(卖家):三亚风情 文档编号:3371784 上传时间:2022-08-24 格式:PPT 页数:20 大小:284.50KB
下载 相关 举报
Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt_第1页
第1页 / 共20页
Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt_第2页
第2页 / 共20页
Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt_第3页
第3页 / 共20页
Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt_第4页
第4页 / 共20页
Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、第第5章章 Tkinter 图形绘制图形绘制图形图形版发牌程序版发牌程序主讲主讲 夏敏捷夏敏捷计算机学院副教授计算机学院副教授5.1 扑克牌发牌窗体程序功能介绍 4名牌手打牌,计算机随机将52张牌(不含大王和小王)发给4名牌手,在屏幕上显示每位牌手的牌,程序的运行效果如图所示。接下来,我们以Tkinter模块图形Canvas绘制为例学习建立一些简单的GUI(图形用户界面)游戏界面。5.2 程序设计的思路 将要发的52张牌,按梅花012,方块1325,红桃2638,黑桃3951顺序编号并存储在pocker列表(未洗牌之前),列表元素存储的是某张牌(实际上是牌的编号)。同时按此编号顺序存储扑克牌图

2、片imgs列表中。也就是说imgs0存储梅花A的图片,imgs1存储梅花2的图片,则imgs14存储方块2的图片。发牌后,根据每位牌手(p1,p2,p3,p4)各自牌的编号列表,从imgs获取对应牌的图片并使用create_image(x坐标,y坐标),image=图像文件)显示在指定位置。5.3 Canvas图形绘制技术 5.3.1 Canvas5.3.1 Canvas画布组件画布组件 Canvas(画布)是一个长方形的区域,用于图形绘制或复杂的图形界面布局。可以在画布上绘制图形、文字,放置各种组件和框架。5.3 图形绘制5.3.2 Canvas5.3.2 Canvas上的图形对象上的图形对

3、象Canvas画布上可以绘制各种图形对象。通过调用如下绘制函数实现。create_arc()绘制圆弧。create_line()绘制直线。create_bitmap()绘制位图。create_image()绘制位图图像。create_oval()绘制椭圆。create_polygon()绘制多边形。create_window()绘制子窗口。create_text()创建一个文字对象图形对象id、标记(tag)id1=cv.create_line(10,10,100,80,width=2,dash=7)#绘制直线id1可以得到绘制对象直线id。使用属性tags设置图形对象的标记(tag)rt=c

4、v.create_rectangle(10,10,110,110,tags=r1)上面的语句指定矩形对象rt具有一个标记r1。rt=cv.create_rectangle(10,10,110,110,tags=(r1,r2,r3)上面的语句指定矩形对象rt具有3个标记r1,r2,r3。使用find_withtag(r1)方法可以获取到指定tag的图形对象。【例5-1】使用属性tags设置图形对象标记的例子。from tkinter import*root=Tk()#创建一个Canvas,设置其背景色为白色cv=Canvas(root,bg=white,width=200,height=200)

5、#使用tags指定给第一个矩形指定3个tagrt=cv.create_rectangle(10,10,110,110,tags=(r1,r2,r3)cv.pack()cv.create_rectangle(20,20,80,80,tags=r3)#使用tags指定给第2个矩形指定1个tag#将所有与tag(r3)绑定的item边框颜色设置为蓝色for item in cv.find_withtag(r3):cv.itemconfig(item,outline=blue)root.mainloop()2绘制圆弧 Canvas对象.create_arc(弧外框矩形左上角的x坐标,弧外框矩形左上角的

6、y坐标,弧外框矩形右下角的x坐标,弧外框矩形右下角的y坐标,选项,.)【例5-2】使用create_ arc()方法创建圆弧的例子。3绘制线条 canvas.create_line(x0,y0,x1,y1,.,xn,yn,选项)参数x0,y0,x1,y1,.,xn,yn是线段的端点。【例5-3】使用create_line()方法创建线条对象的例子。from tkinter import*root=Tk()cv=Canvas(root,bg=white,width=200,height=100)cv.create_line(10,10,100,10,arrow=none)#绘制没有箭头线段cv.

7、create_line(10,20,100,20,arrow=first)#绘制起点有箭头线段cv.create_line(10,30,100,30,arrow=last)#绘制终点有箭头线段cv.create_line(10,40,100,40,arrow=both)#绘制两端有箭头线段cv.create_line(10,50,100,100,width=3,dash=7)#绘制虚线cv.pack()root.mainloop()4绘制矩形 使用create_ rectangle()方法可以创建矩形对象。Canvas对象.create_rectangle(矩形左上角的x坐标,矩形左上角的y坐

8、标,矩形右下角的x坐标,矩形右下角的y坐标,选项,.)创建矩形对象时的常用选项:outline指定边框颜色,fill指定填充颜色,width指定边框的宽度,dash指定边框为虚线,stipple使用指定自定义画刷填充矩形。【例5-4】使用create_rectangle()方法创建矩形对象的例子。运行效果如图5-4所示。5绘制多边形 使用create_polygon()方法可以创建一个多边形对象,Canvas对象.create_polygon(顶点1的x坐标,顶点1的y坐标,顶点2的x坐标,顶点2的y坐标,顶点n的x坐标,顶点n的y坐标,选项,.)【例5-5】创建三角形、正方形、对顶三角形对象

9、的例子。6绘制椭圆 使用create_oval()方法可以创建一个椭圆对象 Canvas对象.create_oval(包裹椭圆的矩形左上角x坐标,包裹椭圆的矩形左上角y坐标,包裹椭圆的矩形右下角x坐标,包裹椭圆的矩形右下角y坐标,选项,.)7绘制文字 7绘制文字 使用create_text()方法可以创建一个文字对象 文字对象=Canvas对象.create_text(文本左上角的x坐标,文本左上角的y坐标),选项,.)8绘制位图和图像(1)绘制位图使用create_bitmap()方法可以绘制Python内置的位图Canvas对象.create_bitmap(x坐标,y坐标),bitmap=

10、位图字符串,选项,.)其中:(x坐标,y坐标)是位图放置的中心中心坐标;常用选项有bitmap、activebitmap和disabledbitmap,分别用于指定正常、活动、禁用状态显示的位图。(2)绘制图像在游戏开发中需要使用大量图像,采用create_image()方法可以绘制图形图像,具体方法如下:Canvas对象.create_image(x坐标,y坐标),image=图像文件对象,选项,.)【例5-9】绘制图像示例,运行效果如图5-9所示。9修改图形对象的坐标使用coords()方法可以修改图形对象的坐标,具体方法如下:Canvas对象.coords(图形对象,(图形左上角的x坐标

11、,图形左上角的y坐标,图形右下角的x坐标,图形右下角的y坐标)【例5-10】修改图形对象的坐标示例,运行效果如图5-10所示。10移动指定图形对象 使用move()方法可以修改图形对象的坐标,具体方法如下:Canvas对象.move(图形对象,x坐标偏移量,y坐标偏移量)11删除图形对象使用delete()方法可以删除图形对象Canvas对象.delete(图形对象)例如:cv.delete(rt1)#删除rt1图形对象12缩放图形对象 使用scale()方法可以缩放图形对象,具体方法如下:Canvas对象.scale(图形对象,x轴偏移量,y轴偏移量,x轴缩放比例,y轴缩放比例)扑克牌发牌程序窗体图形版 4名牌手打牌,电脑随机将52张牌(不含大小鬼)发给4名打牌,在屏幕上显示每位牌手的牌。程序的运行效果如图所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Python游戏设计案例实战第5章-Tkinter图形界面设计-图形版发牌程序.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|