728x90
반응형
Loop Mouse
마우스를 움직일때 마우스의 가장 중간지점은 검은색이고 옆으로 갈수록 흐릿해지는 효과를 줄 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
void setup(){
size(480,270);
}
void draw(){
int i=0;
while(i<width){
float distance=abs(mouseX-i);
println(distance);
println(mouseX);
fill(distance);
rect(i,0,10,height);
i+=10;
}
}
|
cs |
우선 10,20,30,...470까지 10간격으로 직사각형이 만들어진다.
만약 mouseX의 위치가 250이라면 i가 250인 25번째 사각형은 distance가 0이므로 검은색이 칠해질 것이다.
하지만 i가 10인 첫번째 사각형은 250-10=240으로 거의 흰색의 사각형이 칠해질 것이다.
while문이 draw함수가 실행될때마다 계속 다시 실행된다는 것을 염두해두면 좋다.
Bounce ball with Modularity
이전에 구현했던 바운스볼을 여러 함수로 기능을 빼내어서 구현해볼 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
int x=20;
int speed=1;
int diam=30;
void setup(){
size(480,270);
}
void draw(){
background(255);
move();
display();
bounce();
}
void move(){
x+=5*speed;
}
void bounce(){
if(x+diam/2>width){
speed*=-1;
}else if(x-diam/2<0){
speed*=-1;
}
}
void display(){
fill(128);
ellipse(x,150,diam,diam);
}
|
cs |
중요한건 x+diam/2 > width , x-diam/2<0 이라는 조건을 잘 세워야 한다는것!
Single Object
자동차가 캔버스를 지나갈것인데 이를 class를 통해 구현해볼 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
Car myCar;
void setup(){
size(480,70);
myCar=new Car();
}
void draw(){
background(255);
myCar.move();
myCar.display();
}
class Car{
color c;
float xPos;
float yPos;
float speed;
Car(){ //
c=color(128);
xPos=width/2;
yPos=height/2;
speed=3;
}
void display(){
fill(c);
rect(xPos,yPos,30,20);
}
void move(){
xPos+=speed;
if(xPos>width){
xPos=0;
}
}
}
|
cs |
color라는 데이터 타입이 있는게 신기했다.
Two Object
single Object 부분에 이어서 자동차 객체를 2개 만들어볼 것이다.
객체를 2개 만들고 싶으면 생성자에 매개변수를 두면 좋다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
Car myCar1;
Car myCar2;
void setup(){
size(480,270);
myCar1=new Car(51,0,100,2);
myCar2=new Car(151,0,200,1);
}
void draw(){
background(255);
myCar1.move();
myCar1.display();
myCar2.move();
myCar2.display();
}
class Car{
color c;
float xPos;
float yPos;
float speed;
Car(color c,float xPos,float yPos,float speed){
this.c=c;
this.xPos=xPos;
this.yPos=yPos;
this.speed=speed;
}
void display(){
stroke(0);
fill(c);
rect(xPos,yPos,30,20);
}
void move(){
xPos+=speed;
if(xPos>width){
xPos=0;
}
}
}
|
cs |
자바 문법이랑 거의 똑같다.
728x90
반응형
'processing' 카테고리의 다른 글
[프로세싱 시험대비] 시험에 나올만 한것들 정리 (0) | 2022.06.12 |
---|---|
[프로세싱 시험대비] Lecture08_transform (0) | 2022.06.04 |
[Processing] Chapter5_조건문 (0) | 2022.03.12 |
[Processing] Chapter4_variables (0) | 2022.03.12 |
[Processing] bounce ball (0) | 2022.03.10 |
댓글