// 전역 변수: 색상 hex문자열 리스트 Array// 그 외 전역 변수들functionsetup() {createCanvas(windowWidth, windowHeight);background(0);angleMode(DEGREES);// rectMode(CENTER);}// p5js에서 제공하는 마우스 관련 함수들functionmouseDragged() {}functionmouseClicked() {}// 실제 그림 그리는 함수functiondraw() {background(0);drawGrid(20); // 모눈종이표showCoordinateNum(); // 마우스 현재 위치 좌표값// 도형 코드 적기}
// 글로벌 변수를 만들어서 사용한다. let dragX =0;let dragY =0;functionmouseDragged() { dragX = mouseX; dragY = mouseY;}functiondraw() {// ... 생략 ...// 마우스 드래그 연습push();translate(dragX, dragY);myRectE();pop();}
해당 도형 가까이서 클릭했을 때만, OR
여러 개의 도형을 각각 옮기고 싶다면,
조건문을 사용해서, 해당 도형 가까이/내부에서 드래그를 시작했는지 확인해야 한다.
6. 실습: 마우스 클릭에 따라 색상을 바꿔보자.
색상 문자열 여러 개를 변수에 저장한다. 이런 리스트 데이터를 Array라고 부른다.
let coolors = ["#cbf3f0","#2ec4b6","#ff9f1c","#ffbf69"];
리스트에 있는 아이템을 가져다가 쓸 때는, 인덱스(순서)로 가져온다.
컴퓨터는 리스트의 순서를 0부터 시작한다.
console.log(coolors[0]); // 0번째console.log(coolors[1]); // 1번째console.log(coolors[2]); // 2번째console.log(coolors[3]); // 3번째console.log(coolors[4]); // 어떤 일이 발생하는가?
인덱스를 고정 숫자가 아닌 변수로 대체하자.
// 코드 상단에 변수 새로 만들기.let colorIndex =0;functiondraw() {console.log(coolors[colorIndex]);}
이 변수를 마우스 클릭에 따라 업데이트 해보자.
컴퓨터의 연산은 오른쪽에서 왼쪽 방향이라는 것을 기억하자!
let colorIndex =0;functiondraw() {console.log(coolors[colorIndex]);}functionmouseClicked() { colorIndex = colorIndex +1; // 기존 값에 +1을 해서 왼쪽으로 넘긴다. // colorIndex 변수를 업데이트한다.}