최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

   hitTestObject - 서로 겹치지않게 위치 찾아가기


책에서 배운 내용인데 응용해 본 것. 


라이브러리 패널창에 'Slime'이라는 무비클립 클래스 객체가 있고, 객체의 충돌을 피해서 stage에 addChild 한다.

 

소스) 

서로 겹치지않게 찾아가기.fla
import 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
댓글