添加开始或者暂停按钮和重置按钮processing倒计时代码。
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。它是Java语言的延伸,并支持许多现有的Java语言架构,不过在语法上简易许多,并具有许多贴心及人性化的设计。以Processing完成的作品可在个人本机端作用,或以JavaApplets的模式外输至网络上发布。
游戏中经常需要做按钮, 按钮是有按压和d出两种状态。当按钮被按下时,按钮会触发某个函数的执行
长方形是4个角组成,因此四个坐标就可以定位长方形,也就是说new 一个长方形需要2个参数,分别为2个坐标.两个坐标是topleft 和rightdown , 但由于rightdown坐标可以用width height 和topleft进行计算,实际参数就是 x y w h
需要检测是否鼠标在方形内, 并且按下
我想先将题主的问题作一个一般化:如何在 Processing 中实现按任意顺序按下和释放任意个键,在此过程中永远只输出最后按下的那个还没释放的键的键值。这个问题的难点首先在于在 Processing 中变量 key 保存的始终是最后一个按下或释放的那个键的值。因此按下一个键不放,再按另一个键之后,第一个键的信息如果事先没有被程序员主动保存起来的话就会「丢失」掉再也找不回来了。其次是虽然 Processing 的官方文档说布尔型变量 keyPressed 是只要有键被按下它的值就是 true,但文档里没有提到的是当同时有多个键被按下后,只要有一个 keyRelease 事件发生,keyPressed 就不再为 true 了,即使此时仍有键没被松开。要解决上面提到的问题,我的做法是用 IntList 数据类型做一个堆栈,可以按下任意个键,按下的键值会按先后顺序入栈,其间也可以松开任意的键,松开的键就从栈中抽走,因而栈顶的键值就永远是最后按下的那个还没有松开的键值。然后通过判断栈的高度是否非零(不是通过 keyPressed 的值,原因前面已经提到)来确定是否打印栈顶的键值。这是程序:IntList pkeys = new IntList()//这个是用来堆栈的可变长度int型列表void setup(){
size(400,300)
background(255)
}
void draw(){
printkey()
//println(pkeys)
}
void keyPressed() {
//当有新键被按下时在栈顶加入该键值
if(!pkeys.hasValue(int(key)))
pkeys.append(int(key))
}
void keyReleased() {
for(int i=pkeys.size()-1i>=0i--){
if(pkeys.get(i) == int(key)){
pkeys.remove(i)//当有键被释放时,到栈中找到该键值,从栈中去掉它
}
}
}
void printkey(){
if(pkeys.size()>0){ //当栈的高度不为零时输出栈顶的键值
print(char(pkeys.get(pkeys.size()-1)))
}
}
(这个程序理论上是对任意个按键都适用的,但实际情况下键盘上某些键一起按时是会发生硬件冲突的,经常是同时按下六个键后第七个键就无法起作用了。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)