3244| 4
|
[入门教程] Processing笔记04—鼠标键盘识别 |
前面我们学习了Processing中基本图形的绘制,本篇来介绍Processing中对于鼠标键盘输入设备的识别,有了输入设备,我们就可以更加灵活的进行控制了。 鼠标坐标在Processing中使用mouseX和mouseY变量来存储当前鼠标的坐标位置,默认值都为0。在程序运行中,这两个变量会不断刷新保存最新的鼠标坐标信息。
此外pmouseX和pmouseY这两个变量用来存储前一帧鼠标的位置数据,如同mouseX和mouseY,这两个系统变量在每次运行draw()函数时都会刷新。 我们可以配合使用它们,通过测量鼠标当前位置和上一帧位置之间的距离,来计算鼠标的移动速度。这里的距离计算借助dist()函数,参数为被测量的两个点的坐标。
如上代码,将获取的前后鼠标位置之间的距离赋值给描边粗细函数strokeWeight(),当鼠标移动速度缓慢时画出来的是细线,当移动速度快时,画出的线就会变粗。
鼠标单击除了定位鼠标之外,Processing还能捕获鼠标是否被单击。使用mousePressed变量来标记鼠标的单击和释放状态。这个变量是布尔类型的,当按键被按下为真,松开为假。 一般我们的鼠标都是多于一个按键的,Processing使用mouseButton变量来存储被点击的按键类型,它们的值为LEFT、CENTER、RIGHT。
如上代码,当鼠标左键按下会在左侧画一个绿色的圆,当中间滚轮被按下会在中间画一个黑色的圆,当右键被按下会在右侧画一个红色的圆,当任何按键抬起后清除显示。值得注意的是,当三个按键都被按下,三个圆都会显示,但当其中任何一个鼠标按键被释放,则全部清除显示。 键盘按键Processing中也会跟踪键盘上哪一个按键被按下,以及最后一个被按下的键。使用keyPressed变量来标记按键状态,当按键被按下为真,松开按键为假。key变量存储最后一个被按下的键的信息,其类型为字符型(char),每当有新的按键被按下,key的值就会刷新。
如上代码用到了绘制字体相关函数,textSize()用来设置字体大小,textAlign()设置文字对齐方式,text()函数用来绘制字体。 我们可以通过比较操作符来判断特定字符是否被按下,但是像Shift、Alt以及方向按键却很难这么做,因为它们没有特定的字符表示。我们需要先检测是否有编码为CODED的按键被按下,然后再用keyCode变量来判断具体是哪一个特殊按键,常用值为ALT、SHIFT、CONTROL,以及方向键UP、DOWN、LEFT、RIGHT。
有了对鼠标键盘输入设备的识别,我们就可以做很多好玩的小游戏了,例如贪吃蛇、俄罗斯方块等等,你也来试试吧。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed