前
后
类型
Processing跟踪键盘上的任何一个键被按下与否,同样也包括最后
一个按下的键。像mousePressed变量一样,当有任何键按下时keyPressed变量,为真,为真。当没有键按下时,它为假。 示例5-18:按下一个键
在这个示例中,第二条线只有当某一键被按下时才会被画出。 代码:
void setup() {
size(240,120); smooth(); }
void draw() {
background(204); line(20,20,220,100); if(keyPressed) {
line(220,20,20,100); } }
图示:
Key变量保存了最近依次按下的键的信息。它的数据类型是char字符型,这是character的简写。一个字符型的变量可以存储任何单个字符,包括字母表的字
16
母,数字和符号。不像string字符串型的值,string是用双引号引起来的,而char字符型使用单引号。下面是一个声明和赋值字符变量的例子。 Char c=’A’; //声明并指定变量
不像keyPressed是布尔型,当一个按键每次放开时就转化成假,而key这个变量会一直保留它的结果,知道另一个键被按下。接下来的示例是使用key的值在屏幕上画出这些字符的。每次当一个新的键被按下的时候,它的值就被更换成一个新的字符,然后画出来。一些案件,数Shift和Alt没有一个可见的字符表示,所以当你按下它们时,没有东西会被画出来。
示例5-19:画一些字符
这个示例介绍用textSize()函数来设置字母的大小。textSize()函数把文本放置在X坐标轴的中间位置,然后text()函数来绘制这个字母。 代码:
void setup() {
size(120,120); textSize(64);
textAlign(CENTER); }
void draw() {
background(0); text(key,60,80); }
图示:
示例5-20:检验特殊的键
在这个示例中,我们输入的H或者N。我们使用比较操作,==符号,来看按下的键所代表的字符是否为我们想要的。 代码:
void setup() {
size(120,120); smooth(); }
17
void draw() {
background(204); if(keyPressed) {
if((key=='h')||(key=='H')) {
line(30,60,90,60); }
if((key=='n')||(key=='N')) {
line(30,20,90,100); }
line(30,20,30,100); line(90,20,90,100); } }
图示:
示例5-21:用方向键来移动
参考资料 《爱上Processing》 人民邮电出版社 2013-7-10
18
19