| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python arcade库教程(2) -> 正文阅读 |
|
[Python知识库]python arcade库教程(2) |
上次说了窗口的创建和框架创建的区别、on_draw方法、on_update方法和鼠标按下松开时调用的on_mouse_release,on_mouse_press。 本篇文章就再次讲解arcade库Window类里的方法。 对了,有一个事情上篇文章忘说了,在把窗口实例化的时候,可以填3个属性,分别是此窗口的宽度(x值)、长度(y值)和标题,窗口默认大小是800*600,默认的标题是‘arcade window’,这个上篇文章仔细的小伙伴应该看出来了。 还是一样编写一个程序来看一下
运行之后出现的窗口明显比之前的窗口更加扁一些,在此窗口中看到的图片大小肯定不是1000*400,但是把图片保存下来之后就可以看到它的大小了,仍然不是1000*400,因为要算上边框。 ?好了话题有点偏了,我们进入今天的内容 接着上篇的,我们先讲鼠标的方法。 on_mouse_motion(self,x,y,dx,dy) 这个方法相信大家都能看出来,是在鼠标移动时自动按当前程序帧率执行。和其它的鼠标方法一样,前面的x,y是指当前鼠标的坐标,后面的是这个函数的“专属”参数 这个函数的“专属”参数dx和dy分别指鼠标在上一帧在x方向和y方向移动的值 dx>0,鼠标向右运动,dx<0,鼠标向左运动,dy<0,鼠标向下,反之则向上。 编写一个程序来具体的看一下。
运行之后,小编随便在窗口中挥动了几下鼠标,可以看到打印了很多的值,这些值分别代表了什么大家应该都知道,这里就不再赘述。 细心的小伙伴可能会注意到:为什么坐标没有负值? 这就要看它用的坐标系了,arcade库用的坐标系是以左下角为原点,而我们常见的坐标系是笛卡尔坐标系,以中心点为原点。 好了,我们进行到下一个函数。 on_mouse_drag(x,y,dx,dy,button,mod) 这个函数和on_mouse_motion有点像,前面四个参数是完全一样的,但是却有着on_mouse_press的button和mod参数。没错,它就是在拖动鼠标时自动调用的函数。 里面的参数都讲过,就不凑长度了。没看上篇文章讲的on_mouse_press的朋友,往期入口在这里 照例编写一个程序。
运行之后,小编分别按下左、中、右键拖动了鼠标,输出内容如下: ?好了,来到第三个方法,也是鼠标的最后一个方法 on_mouse_scroll(x,y,dx,dy) 这个参数。。很眼熟对不对? arcade的作者跑路了? 当然不可能了! 这个方法在鼠标滚动时自动调用,前两个参数是鼠标的坐标,dx和dy分别代表了鼠标横向滚动和竖向滚动的值 当然啦,dx是专为有横着的滚轮的特殊鼠标准备的,dy才是给普通鼠标准备的。 dy>0,鼠标向上滚动,反之则向下,dx>0,鼠标向右滚动,反之向左 编写程序看一下
因为小编的鼠标没有横向滚轮,就没有编写横向滚轮的内容。 运行程序后,小编先后向上和向下滚动了滚轮,输出结果如下。 好了,鼠标的内容就到此结束了 接下来看下键盘上的内容 on_key_press(button,mod) on_key_release(button,mod) 两个函数也是非常相似,就放在一起讲。 前者是在键盘按键按下时调用,后者是松开时调用。 参数也是一样的,button代表的是按键,mod是辅助键。 button的值用ascii码表示 这里就再往外扯一下,跟大家讲一下ascii码。 ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符 这是来自百度百科的回答,翻译成人话来讲呢,就是说ascii是一种国际通用的在计算机上表示电脑键盘上的字符的编码系统。知道就可以了。 这里给到大家一张ascii码的对照图 如果你不想每次都用晦涩难懂的ascii码,arcade库有一个key类,可以代替ascii,只不过要另外导入,也就是要在前面加上一行 from arcade import key 还是编写。。。两个程序 分别为ascii码的和arcade自带的key的 因为电脑上。。。按键实在太多了就只编写一个按键,需要的话就复制粘贴再改一改就可以了。 ?使用arcade.key:
使用ascii码:
运行的输出时一样的,小编按了几次‘1’键。 输出结果如下: ?好了,window类的教程就到这里,本篇文章也结束了, 参考资料: 文中关于ascii码的讲解来自https://baike.baidu.com/item/ASCII/309296?fr=aladdin 文中ascii码的对照图来自https://zhidao.baidu.com/question/1924451713468797027.html 其它的图片均来自海龟编辑器截图。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 14:40:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |