-
배열을 생성하고 접근하는 방법에 대해 지금까지 배웠어요
-
배열의 좋은 점은 프로그램이 실행되는 동안
-
일반적인 변수처럼 동적으로 값을 변경할 수 있다는거에요
-
좋아요
무슨 말인지 직접 보여드릴게요
-
호퍼(캐릭터)가 풍선을 들고 있어요
귀엽네요
-
풍선 두개에 각각 x좌표값을 넣었어요
-
그리고나서 루프(반복문)를 통해 배열의 원소들을 모두 읽어요
-
xPosision 배열에 두 개의 값을 가지고 있는데
두 개의 풍선의 위치입니다
-
그 후 "x"위치에 30x40에 해당하는 크기의 동그라미(풍선)을 그려요
-
좋아요
이제 어떻게 작동하는지 볼거에요
-
풍선을 추가하고싶으면 배열에 숫자를 추가하기만 하면 돼요
300을 넣어 볼까요
-
아름다워요
호퍼는 풍선을 3개나 갖고 있어 기분좋아하네요
-
그런데 풍선을 새로 추가하기 위해 코딩을 할 줄 모르는
사용자에게 그 방법을 말해주려고 해요
-
사용자에게 프로그램을 제공하고
"원하는 위치에 클릭하면 풍선이 표시됩니다" 라고 말하고싶어요
-
굉장히 멋질거같아요
-
이제 어떻게 해야하죠?
프로그램이 시간 흐름에 따라 변해야겠죠?
-
사용자가 클릭할 때마다 풍선이 나타날거에요
-
시간에 따라 변할 수 있게 draw 함수를 사용할게요
-
전부 draw 함수 내부로 넣을게요. 좋아요
-
먼저 사용자가 마우스를 누르면 즉시 알아야해요
-
if (mouseIsPressed) 를 이용해서 가능하지요
-
그리고 마우스를 누르면 배열에 숫자를 추가시켜야해요
-
항목 두 개를 가지고 다시 해 볼게요
-
이제 배열에 숫자 하나를 추가 하려고 합니다
그렇게 하는 한 가지 방법을 보여 드릴게요
-
xPositions[2] = mouseX;로 하면 됩니다
-
좋습니다
작동하는 것을 보여드릴게요
-
클릭하면 풍선이 생겼어요. 짜잔!
어떻게 한거죠?
-
배열 xPositions 의 2 위치인데
-
배열은 0부터 세니까 세번째 원소라는 것을 알 수 있지요
-
그런데 배열의 세번째 위치에 원소가 없어요
-
xPositions[2]라는 것을 인식하고 나서 mouseX를 대입해요
-
xPositions[2] 위치에 아무것도 없었지만
이제 mouseX가 입력되었어요
-
이제 배열은 3개의 항목을 가진 길이를 갖고
-
for 루프는 쭈욱 진행해서 세번째 풍선 그리기가 끝나요
-
정말 멋져요
좀 더 클릭해서 어떻게 되는지를 보도록 합시다
-
클릭할 때마다 세번째 풍선이 그려지는 것을 볼 수 있어요
-
그 이유는 계속 2라는 위치에 오버라이딩(겹쳐쓰기) 하기 때문이에요
-
매번 mouseX로 값이 겹쳐지게 됩니다
-
그래서 풍선은 3개만 가질 수 있어요
-
0 위치에서 하나, 1 위치에서 하나,
계속 변하는 2 위치에서 하나, 맞죠?
-
멋져요
하지만 우리는 풍선을 계속 더 많이 만들고 싶은 겁니다
-
사용자가 클릭할 때마다 새로운 풍선이 생기도록요
-
배열의 인덱스를 계속 증가시킬 필요가 있다는 의미에요
-
매번 2 위치에만 저장하는게 아니라
2, 3, 4, 5, 6, 등의 위치에도 저장하고 싶어요
-
newInd = 2; 라는 카운터 변수를 가지고 할 수 있어요
-
2 대신에 newInd라고 적고 사용할 거에요
-
그리고 난 후 newInd++ 만 해주면 됩니다
-
매번 여기에 1을 증가하게 되면 2에서 시작하고 3, 4 가 됩니다
-
누를 때마다 더해질 거에요
직접 해보세요
-
짜잔! 풍선이 많아졌어요
풍선파티에요 와~
-
멋지지요?
하지만 풍선을 많이 만들려고
-
배열 인덱스를 많이 만드는 것은 최선의 방법은 아니에요
-
더 쉬운 방법이 있어요
-
이전에 했던것을 지우고 주석으로 남길게요
-
자 그리고 xPositions.push(mouseX);을 해봅시다
-
이것의 역할은 xPositions 배열에서 메서드를 호출하는 거에요
-
배열에 다음과 같이 명령하네요
"mouseX라는 새로운 값을 배열의 끝에 집어넣어"라고 말입니다
-
이제 그 명령이 호출될 때마다, 즉 사용자가 마우스 클릭을 할 때마다
mouseX를 배열의 끝에 집어넣을 것입니다
-
배열은 커지고 커지고 더 커질거에요
재시작하고 다시 해보세요
-
짜잔, 작동해요!
이전보다 짧은 코드로 작동하네요. 맞죠?
-
이렇게 배열에 무엇을 추가하고자 한다면
대부분 push를 사용해야합니다
-
그리고 꽤 깔끔한 편이에요
왜냐하면 이 후에 배열이 더 커지고 커져도 문제 없기 때문이죠
-
애니메이션이나 사용자가 일을 할 때
유용하게 사용될 거에요
-
지금까지 90%는 아마 배열을 기존 방식처럼 사용했겠지만
-
배열을 이용해서 더 많은 일을 할 수 있어요
질문이 있으면 토론방에서 질문하세요
-
그 전에 오늘 배운 기초내용을 숙지하세요