① hitTest 충돌검사
가) 무비클립 A와 무비클립 B 사이의 충돌여부 검사.
if(A.hitTest(B) == true){
} else {
}
무비클립을 둘러싸고 있는 사각형들(shapeFlag) 사이의 충돌여부 검사
나) 무비클립과 점 사이의 충돌여부 검사!!
flag는 0 아니면 1 :
0 이면, 둘러싼 사각형(shapeFlag)과 충돌검사,
1 이면, 모양 그대로 검사...
if(A.hitTest(x, y, 1) == true){
} else {
}
a.onPress = function(){
this.startDrag();
}
a.onRelease = function(){
stopDrag();
if(a.hitTest(b) == true){
txt = "충돌하였습니다."
} else {
txt = "충돌하지 않았음"
}
}
this.startDrag();
}
a.onRelease = function(){
stopDrag();
if(a.hitTest(b) == true){
txt = "충돌하였습니다."
} else {
txt = "충돌하지 않았음"
}
}
② 충돌검사 상태변수
- paper가 can에 충돌하면 캔의 뚜껑이 열리면서 페이퍼가 can 안으로 들어가도록 만들어 봅시다.
xPos = paper._x;
yPos = paper._y;
// 드래그 시작
paper.onPress = function(){
this.startDrag();
}
// 드래그 멈춤
paper.onRelease = function(){
stopDrag();
if(this.hitTest(can) == true){
can.gotoAndStop(2);
this._visible = false;
}
}
_root.old = 0;
can.onRelease = function(){
if(old + 500 > getTimer()){
//trace("더블클릭");
this.gotoAndStop(1);
this._parent.paper._visible = true;
this._parent.paper._x = xPos;
this._parent.paper._y = yPos;
}
old = getTimer();
}
yPos = paper._y;
// 드래그 시작
paper.onPress = function(){
this.startDrag();
}
// 드래그 멈춤
paper.onRelease = function(){
stopDrag();
if(this.hitTest(can) == true){
can.gotoAndStop(2);
this._visible = false;
}
}
_root.old = 0;
can.onRelease = function(){
if(old + 500 > getTimer()){
//trace("더블클릭");
this.gotoAndStop(1);
this._parent.paper._visible = true;
this._parent.paper._x = xPos;
this._parent.paper._y = yPos;
}
old = getTimer();
}
③ 상태변수
상태가 2가지인 경우(true / false)를 말하며 isOpen, isRight, isPlay 등이 있습니다. 동일한 버튼으로 불을 켜고 끄거나, 문을 열고 닫을 때 사용합니다.
/*
-- 상태변수
: 상태가 2가지인 경우 ( true / false )
예) is~ , isOpen, isRight, isPlay,
*/
//상태변수 isRight 값 설정
isRight = true;
btn.onRelease = function(){
if(isRight == true){
rightMc.gotoAndStop(2);
isRight = false;
}else{
rightMc.gotoAndStop(1);
isRight = true
}
}
-- 상태변수
: 상태가 2가지인 경우 ( true / false )
예) is~ , isOpen, isRight, isPlay,
*/
//상태변수 isRight 값 설정
isRight = true;
btn.onRelease = function(){
if(isRight == true){
rightMc.gotoAndStop(2);
isRight = false;
}else{
rightMc.gotoAndStop(1);
isRight = true
}
}