이전에 책 보고 기본 뼈대만 만들어 뒀던 Flash 매치3(match-3) 퍼즐 게임 프로토타입 수정.

* 마우스로 블록을 드래그하여 같은 모양의 블록이 3개 이상 모일 경우 제거되는 match-3 퍼즐 게임(Bejeweled, 애니팡 등이 이 종류).
* 오른쪽 청색 부분을 클릭하면 이동 가능한 블록들이 텍스트 박스에 표시된다.
* 더이상 움직일 수 없으면 Game Over가 되고 Restart 버튼을 클릭하면 새로 게임이 시작된다.

14/5/19 월

수정사항:

* 마우스로 드래그하여 이동 가능하게 변경.
stage.addEventListener(MouseEvent.CLICK, onClick); 이던 것을
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onClick);
2개로 나누고 onDown() 함수를 추가해서 가능케 하다.

* 게임 화면 이외의 곳을 누르면 나오는 힌트가 텍스트박스에 표시되게 수정.

* cantMove()함수 추가하고 마우스 놓을 때 호출되는 함수인 onClick()의 맨 마지막 줄에 cantMove()함수를 호출하게 해 게임오버 여부 판단을 하고 게임오버시 텍스트 창에 표시되게 하다.
textOut.scrollV = textOut.maxScrollV; 로 텍스트 박스의 맨 밑줄이 보이게 만들다.

* 재시작 버튼 추가. 게임오버 처리, 게임 재시작 처리 함수 추가.

* 게임오버 이후 재시작할 수 있게 만들다. 컨테이너의 내용을 비우는 법을 몰라서 꽤 헤메다. 테스트용으로 엔터키를 누르면 바로 게임오버가 되게 추가.

* 제거한 보석 수 텍스트 박스에 표시하게 변경.

Flash 매치3(match-3) 퍼즐 게임 프로토타입 수정(14/5/22 목).

* 블록의 크기를 60에서 40으로 줄여 전반적인 게임화면의 크기를 축소시키고 블록 크기를 상수(GEMSIZE)로 만들어 이후에 블록 크기 변경시 쉽게 바꿀 수 있게 처리.
* 블록 선택시 블록의 그래픽이 바뀌게 수정.
* 마우스 클릭시 무조건 선택된 블록으로 변경되게 바꿔서 블록을 무조건 드래그하여 이동하게 바꾸다. 이전의 따로따로도 클릭이 가능했던 경우보다 이쪽의 퍼포먼스가 나은듯.

그외 블록이 떨어지는 애니메이션 처리를 해보려고 했지만 계속 실패 중.

컨테이너 내용 채우기.

var gemsContainer:Sprite=new Sprite();
//모든 보석을 포함할 DisplayObject 생성

addChild(gemsContainer);
//8*8 크기 2차원 배열 생성,0~7사이 무작위 숫자로 채우기
for(var i:uint=0; i<8; i++){
   jewels[i]=new Array();
   for(var j:uint=0; j<8; j++){
      jewels[i][j]=Math.floor(Math.random()*7);
      gem = new gem_mc(jewels[i][j],i,j);
      //gem_mc 클래스 생성자의 인자(보석종류, 열위치, 행위치)
      gemsContainer.addChild(gem);
      //생성된 보석 컨테이너에 담기
   }
}

컨테이너 내용 비우기.

for(var i:uint=gemsContainer.numChildren; i > 0; i--){
   gemsContainer.removeChildAt(0);
}