Processing 常用函数及变量表
函数
基本执行事件函数块:
函数名 | 简单使用描述 |
---|
void setup() | 初始化函数,内容只执行一次 |
void draw() | 绘图函数,其内容会循环执行 |
void size() | 设置画布的大小,可加参数P3D,使用3D渲染器 |
void mousePressed() | 在鼠标被点击后才会执行一次的函数块 |
void mouseReleased() | 在鼠标释放后会执行一次的函数块 |
void mouseClicked() | 在鼠标单击被释放后才会执行一次的函数块 |
void mouseMoved() | 在鼠标移动且无任何键按下时才会执行的函数块 |
void mouseDragged() | 在鼠标有键按下同时鼠标移动时才会执行的函数块 |
void mouseWheel(MouseEvent) | 1.参数为鼠标事件,为系统预定义的一种类型,在鼠标滚轮动时,会将滚动值赋给参数的对应属性,2.可在该函数内对传入参数使用getCount()方法读出该值,上滚为1,下滚为-1,3.同样在滑轮滚动时,该函数执行一次; |
void cursor() | 绘制鼠标图标的形状(可填HAND,ARROW,CROSS,WAIT,MOVE,TEXT等)及位置 |
绘图命令函数:
函数名 | 简单使用描述 |
---|
rect/ellipse/triangle/line…… | 根据名字就可以知道的绘画函数 |
translate/rotate/scale | 转换坐标原点(平移)/坐标系旋转/坐标轴放缩 |
popMatrix/pushMatrix | 保存坐标系和恢复坐标系 |
| |
| |
| |
| |
| |
| |
常见的系统预设变量:
屏幕变量:
变量 | 类型 | 意义 |
---|
width | int | 窗口宽度像素值 |
height | int | 窗口高度像素值 |
frameCount | int | 运行的帧数 |
frameRate | int | 每秒运行的帧数 |
screen.width | | 整个屏幕宽度的像素值 |
screen.height | | 整个屏幕高度的像素值 |
键盘变量:
变量 | 类型 | 意义 |
---|
keyPressed | boolen | 键盘是否被敲击 |
key | char | 最近一次键盘的敲击 |
keyCode | int | 键盘敲击的数字代码 |
鼠标变量:
变量 | 类型 | 意义 |
---|
mousePressed | boolen | 鼠标是否在运行屏幕内被点击 |
mouseButton | int(与其匹配的值有LEFT和RIGHT) | 鼠标哪个键被点击 |
mouseX(/Y) | int | 当前鼠标点的横(纵)坐标值 |
pmouseX(/Y) | int | 上次鼠标点的横(纵)坐标值 |
一些注意
小例子
初学processing,写个小例子练练手(上面有些欠缺的,以后再补充了)
import controlP5.*;
Small_Ball first_ball;
boolean motion=true;
ControlP5 cp5;
void setup()
{
colorMode(RGB,255,255,255);
size(800,800,P2D);
background(255);
cp5 = new ControlP5(this);
gui();
noStroke();
first_ball=new Small_Ball(width/2,height/2,40);
first_ball.start();
}
void draw()
{
if(motion)
{
color temp;
background(138,139,138);
temp = color(random(100,255),random(100,255),random(100,255));
first_ball.move(temp);
}
}
void gui()
{
cp5.addToggle("Stop_Start")
.setPosition(0,0)
.setSize(100,50)
.setValue(true)
.setColorLabel(color(28,234,43))
.setLabel("stop/start");
}
void Stop_Start(boolean flag)
{
motion = flag;
}
class Small_Ball
{
float x,y,r,speed_x,speed_y;
Small_Ball(float x,float y,float r)
{
this.x = x;
this.y = y;
this.r = r;
}
void start()
{
ellipse(x,y,r,r);
speed_x = random(10);
speed_y = random(10);
}
void move(color _color)
{
x +=speed_x;
y +=speed_y;
if( ( ((x+r)>width)&&(speed_x>0) ) || ( (x-r<0)&&(speed_x<0) ) )
{
speed_x=-speed_x;
fill(_color);
}
if( ( ((y+r)>height)&&(speed_y>0) ) || ( (y-r<0)&&(speed_y<0) ) )
{
speed_y=-speed_y;
fill(_color);
}
ellipse(x,y,r,r);
}
}
效果如下:
![jump_ball](https://i-blog.csdnimg.cn/blog_migrate/969802473a8dcd6bc4007aa2d8456fdb.gif)