'nemoM'이란 이름의 커서, 'butStart'(시작버튼), 'butE'(다
지우기 버튼)란 이름의 버튼들을 만들어 두다.
var vec1:Point=new Point();
var vec2:Point=new Point();
var speed = 3;
var left, right, up, down:Boolean=false;
function init(){
vec1.x = 110, vec1.y = 100;
nemoM.x = vec1.x, nemoM.y = vec1.y;
vec2.x = nemoM.x, vec2.y = nemoM.y;
lineDraw01(0,0,vec1.x,vec1.y);
stage.addEventListener(Event.ENTER_FRAME,loop);
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDowns);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUps);
butStart.start.addEventListener(MouseEvent.CLICK,butSclick);
butStart.start.addEventListener(MouseEvent.MOUSE_OVER,butSover);
butStart.start.addEventListener(MouseEvent.MOUSE_OUT,butSout);
butE.addEventListener(MouseEvent.CLICK,butEclick);
butE.addEventListener(MouseEvent.MOUSE_OVER,butEover);
butE.addEventListener(MouseEvent.MOUSE_OUT,butEout);
}
function loop(e:Event){ //매 프레임 실행
keyProcess(); //키보드 처리
if(vec1.x != vec2.x || vec1.y != vec2.y){ //선 긋기 처리
lineDraw01(vec2.x,vec2.y,nemoM.x,nemoM.y);
}
vec2.x = nemoM.x, vec2.y = nemoM.y;
}
function vecDot(x1, y1, x2, y2){
//벡터 내적: A・B = x1*y1 + x2*y2 = |A||B| Cosθ
return x1 * y1 + x2 * y2;
}
function vecCross(x1, y1, x2, y2){
//벡터 외적: A×B = x1*y2 - x2*y1 = |A||B| Sinθ
return x1 * y2 - x2 * y1;
}
function lineDraw01(mX,mY,tX,tY,style1=1,style2=0){ //선그리기 함수
//(mX,mY)위치로 이동, 그곳에서 (tX,tY)까지 style(굵기,색)대로 선그리기
graphics.lineStyle(style1, style2);
graphics.moveTo(mX, mY);
graphics.lineTo(tX, tY);
}
//시작 버튼 클릭시, 마우스 오버시, 마우스 아웃시 처리
function butSclick(e:MouseEvent){ butStart.x = -3000; } //안보이게 처리
function butSover(e:MouseEvent){ butStart.gotoAndStop(2); }
function butSout(e:MouseEvent){ butStart.gotoAndStop(1); }
//다지워 버튼 클릭시, 마우스 오버시, 마우스 아웃시 처리
function butEclick(e:MouseEvent){ graphics.clear(); } //화면 지우기
function butEover(e:MouseEvent){ butE.gotoAndStop(2);}
function butEout(e:MouseEvent){ butE.gotoAndStop(1);}
function keyProcess(){ //키보드 처리
if(left && nemoM.x > 0){ nemoM.x -= speed; }
if(right && nemoM.x < stage.stageWidth){ nemoM.x += speed; }
if(up && nemoM.y > 0){ nemoM.y -= speed; }
if(down && nemoM.y < stage.stageHeight){ nemoM.y += speed; }
}
function keyDowns(e:KeyboardEvent){ //키보드 눌릴때
switch(e.keyCode){
case(37): left = true; break; //left
case(39): right = true; break; //right
case(38): up = true; break; //up
case(40): down = true; break; //down
default: break;
}
}
function keyUps(e:KeyboardEvent){ //키보드 뗄 때
switch(e.keyCode){
case(37): left = false; break; //left
case(39): right = false; break; //right
case(38): up = false; break; //up
case(40): down = false; break; //down
case(72): butStart.x = 123; break; //h
default: break;
}
}
init(); |