Processing 教程(2) - 鼠标、键盘事件、条件选择、屏幕宽高

  本次内容开始之前,回答之前的一个问题:如何设置屏幕刷新率?

  看到下面代码就明了了。

实例1:

int wh;


void setup()
{   
  size(640,220); 
  background(0);
  frameRate(30); // 设置屏幕刷新率;
}


void draw()
{
  fill(0);
  //stroke(255);
  float spn = dist(mouseX,mouseY,pmouseX,pmouseY);
  strokeWeight(20/sqrt(spn));
  line(pmouseX,pmouseY,mouseX,mouseY);
}


void mousePressed() //鼠标点击,改变线条颜色;
{
  stroke(int(random(0,255)),
          int(random(0,255)),
          int(random(0,255)));
}
执行结果:


增加键盘事件:如果键盘点击,则保存当前图片。

void keyPressed()
{
    saveFrame("C:\\out.png");
}
那么问题来了,如果保存多张图片, 怎样让保存名称自动改变呢?这应该设计 格式化字符串的问题。

通常有两种命名方式:1.序号增加;2.根据保存的时间命名;

这个问题,现在还不会回答,查找浪费时间,先保留,以后遇到再记录吧!


实例2:鼠标拖动,画图

void setup()
{   
  size(640,220); 
  background(0);
  frameRate(60);
  fill(0);
  stroke(199);
}

void draw()
{   }

void mouseDragged()
{
    line(pmouseX,pmouseY,mouseX,mouseY);
}
直接运行即可。

实例2:代码片段:

void draw()
{   
  if(!mousePressed)
  {
    x = 0;
  }
  if(mousePressed)
  {
    ellipse(mouseX,mouseY,x,x);
    x += 1;
  }  
}

如果鼠标松开,圆半径归零;

如果鼠标按下,画圆,半径增加;


实例3:代码片段:条件语句,点击鼠标,屏幕黑白切换;

boolean black = true;
void draw()
{   
  if(black)
      background(0);
  else
      background(255);
}

void mouseClicked()
{
    black = !black;
}

实例4:键盘输入,改变屏幕颜色

void setup()
{   
  size(640,220); 
  background(0);
  frameRate(60);
  fill(0);
  stroke(199);
}

void draw()
{     
}

void keyPressed()
{
    if(key == 'b')
        background(0,0,255);
    if(key == 'r')
        background(255,0,0);
    if(key == 'g')
        background(0,255,0);
    else
        background(
                    int(random(0,255)),
                    int(random(0,255)),
                    int(random(0,255))
                    );
}
实例5:点击不同区域,产生一个颜色矩形;

void setup()
{   
  size(640,220); 
  background(0);
  frameRate(60);
  fill(0);
  stroke(255,255,0);
  strokeWeight(0);
}

void draw()
{       
}

void keyPressed()
{
  fill(255);
  rect(0,0,width,height);
}

void mouseClicked()
{
    if(mouseX < width/4)
  {
      fill(255,0,0);
      rect(0*width/4+1, 1, width/4 - 2, height-2);
  }
    
  else if(mouseX < 2 * width/4)
  {
      fill(0,255,0);
      rect(1*width/4+1, 1, width/4 - 2, height-2);
  }
    
  else if(mouseX < 3 * width/4)
  {
      fill(0,0,255);
      rect(2*width/4+1, 1, width/4 - 2, height-2);
  }    
    
  else
  {
      fill(0,255,255);
      rect(3*width/4+1, 1, width/4 - 2, height-2);
  }
}
执行结果:


说明:

width 和 height 是语法中的关键字,表示屏幕的宽和高。


  • 13
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Processing是一种基于Java语言的编程语言和开发环境,它可以用于创作交互式图形应用程序。以下是Processing中使用图片、声音、鼠标键盘交互的一些基本方法: 1. 图片交互:Processing中可以使用loadImage()函数加载图片文件,并使用image()函数在屏幕上显示图片。用户可以使用鼠标键盘控制图片的位置、大小和旋转等。例如,可以使用mouseX和mouseY变量来获取鼠标的坐标,然后在屏幕上根据鼠标位置移动图片。 2. 声音交互:Processing中可以使用Minim库来播放和录制声音文件。可以使用loadFile()函数加载声音文件,并使用play()函数播放声音。用户可以使用鼠标键盘控制声音的音量、播放进度和循环等。 3. 鼠标键盘交互:Processing中可以使用mousePressed()和keyPressed()等函数来检测鼠标键盘事件。例如,可以使用mousePressed()函数检测鼠标点击事件,然后根据鼠标点击位置执行相应操作。可以使用keyPressed()函数检测键盘按键事件,然后根据按键代码执行相应操作。 4. 交互设计:在Processing中,可以使用GUI库(如G4P)来创建交互式用户界面。GUI库提供了各种控件(如按钮、滑块、文本框等),可以通过拖拽和设置属性来创建交互式界面。用户可以使用鼠标键盘与这些控件交互,并根据控件的状态执行相应操作。 综上所述,Processing提供了丰富的图形、声音、鼠标键盘交互功能,可以用于创建各种交互式应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值