티스토리 뷰
hitTestObject - 서로 겹치지않게 위치 찾아가기
책에서 배운 내용인데 응용해 본 것.
라이브러리 패널창에 'Slime'이라는 무비클립 클래스 객체가 있고, 객체의 충돌을 피해서 stage에 addChild 한다.
소스)
서로 겹치지않게 찾아가기.flaimport flash.display.MovieClip;
import flash.events.Event;
import flash.filters.GlowFilter;
[SWF(frameRate="24", backgroundColor="0x000000")]
var holder:Array = new Array();
this.addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void{
var mc:MovieClip = new Slime();
mc.x = Math.random() * stage.stageWidth;
mc.y = Math.random() * stage.stageHeight;
mc.scaleX = mc.scaleY = Math.random()*1;
holder.push(mc);
if(checkIns(mc)){
this.addChild(mc);
var glow:GlowFilter = new GlowFilter();
glow.color = 0xFFFFFF * Math.random();
mc.filters = [glow]
}else{
holder.pop();
}
}
function checkIns($mc:MovieClip):Boolean{
//holder가 1개일때 : x
//holder가 2개일때 : 2-1=1, i = 0
//holder가 3개일때 : 3-1=2, i = 0,1
for(var i=0; i<holder.length-1; ++i){
trace(i, holder.length-1)
var flag:Boolean = holder[i].hitTestObject($mc);
if(flag){
return false;
break;
}
}
return true;
}설명 준비중...
결과)
'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글
| 이전값, 현재값 알기 (0) | 2013.10.16 |
|---|---|
| 조건문을 활용한 loop (0) | 2013.10.16 |
| 후치연산자와 전치연산자 (0) | 2013.10.16 |
| 토글 - %(모듈러스) (0) | 2013.10.16 |
| 토글 - Boolean Toggle (0) | 2013.10.16 |
댓글