// JavaScript Document



/*
 자바스크립트로 슈팅게임 만들어보자.
 여기부터 게임관련 코드 시작입니다.
*/

시작등록(Timer);
function Timer() {
	Timer_2.Interval = setInterval ("Timer_2()",delay);
}

function Timer_2() {
	for (j=0;j<unit.length;j++) {
		for (i=0; i<unit[j].length; i++) {
			애니메이션(j,i);
		}
	}
	for (i=0; i<unit[1].length; i++) {
		적군이동(i);
	}
	아군이동();	
	충돌검사();
	상태창출력();
	
}

function 애니메이션(j,i) {
			if (!unit[j][i].getAttribute("src")) return false;	
			if (unit[j][i].anime_type == null) return false;
			유닛좌표계산(j,i,true);
			if (unit[j][i].xx <-100 || unit[j][i].yy < -100) return false;
			if (unit[j][i].end_x >600 || unit[j][i].end_y >400) return false;  
			unit[j][i].anime_cnt++;
			unit[j][i].setAttribute("src",unit[j][i].pic[unit[j][i].anime_type][unit[j][i].anime_cnt]);
			if (unit[j][i].anime_cnt >= unit[j][i].pic[unit[j][i].anime_type].length-1) {
				if(unit[j][i].anime_type != 0|| unit[j][i].anime_type != 4)  unit[j][i].anime_type = 0;
				unit[j][i].anime_cnt  = 0;
			}
}

function 적군이동(i) {
		//유닛좌표계산(1,i,true)
			if (unit[1][i].xx <= -200) {
				unit[1][i].style.left =Math.floor(Math.random(2)*500)+500+"px";
				유닛좌표계산(1,i,true);

			}
			if (unit[1][i].yy <= -200)	{
				unit[1][i].style.top = Math.floor(Math.random(3)*250)-20+"px";
				유닛좌표계산(1,i,true);
			}
			
			if (unit[1][i].end_x >1600 || unit[1][i].end_y >400) return false;
			
			if (unit[1][i].move_x == undefined || unit[1][i].move_y == undefined) return false;
			if (unit[1][i].move_x != 0){
				unit[1][i].style.left = Math.floor(unit[1][i].xx + unit[1][i].move_x) + "px"; 
				디버그출력(1,i);
			}
			if (unit[1][i].move_y != 0) {
				unit[1][i].style.top = Math.floor(unit[1][i].yy + unit[1][i].move_y) + "px";
				디버그출력(1,i);
			}
			
}
function 아군이동() {
	유닛좌표계산(0,0,true);
		
	for (i=0; i<unit[4].length;i++) {
		유닛좌표계산(4,i,true) ;
	}
	if (unit[0][0].xx > unit[0][0].final_x) {
		var dist = Math.ceil((unit[0][0].xx-unit[0][0].final_x)/8);
		unit[0][0].style.left = unit[0][0].xx - dist +"px";
		for (i=0; i<unit[4].length;i++) {
			unit[4][i].style.left = Math.floor(unit[4][i].xx - (dist*unit[4][i].speed)) +"px";
		}
	}
	if (unit[0][0].xx < unit[0][0].final_x) {
		var dist = Math.ceil((unit[0][0].final_x-unit[0][0].xx)/8);
		unit[0][0].style.left = unit[0][0].xx + dist +"px";
		for (i=0; i<unit[4].length;i++) {
			unit[4][i].style.left = Math.floor(unit[4][i].xx + (dist*unit[4][i].speed)) +"px";
		}
		}
	if (unit[0][0].yy > unit[0][0].final_y) {
		var dist = Math.ceil((unit[0][0].yy-unit[0][0].final_y)/8);		
		unit[0][0].style.top = unit[0][0].yy - dist +"px";
		for (i=0; i<unit[4].length;i++) {
			unit[4][i].style.top = Math.floor(unit[4][i].yy - (dist*unit[4][i].speed)) +"px";
		}		
	}
	if (unit[0][0].yy < unit[0][0].final_y) {
		var dist = Math.ceil((unit[0][0].final_y-unit[0][0].yy)/8);
		unit[0][0].style.top = unit[0][0].yy + dist +"px";
		for (i=0; i<unit[4].length;i++) {
			unit[4][i].style.top = Math.floor(unit[4][i].yy + (dist*unit[4][i].speed)) +"px";
		}			
	}
}
function 충돌검사() {	
	var xxx_start = unit[0][0].speed/2;
	var yyy_start = unit[0][0].speed/2;
	var xxx_end = 500 - unit[0][0].height;
	var yyy_end = 300 - unit[0][0].width;
	
	if (unit[0][0].xx < xxx_start) {
		control_button[0].style.display="none";
		control_button[3].style.display="none";
		control_button[6].style.display="none";
	}
	if (unit[0][0].yy < yyy_start) {
		control_button[0].style.display="none";
		control_button[1].style.display="none";
		control_button[2].style.display="none";		
	}
	if (unit[0][0].yy >= yyy_end){
		control_button[6].style.display="none";
		control_button[7].style.display="none";
		control_button[8].style.display="none";
	}
	if (unit[0][0].xx >= xxx_end){
		control_button[2].style.display="none";
		control_button[5].style.display="none";
		control_button[8].style.display="none";			
	}
	if (unit[0][0].xx > xxx_start && unit[0][0].yy >  yyy_start) {
			control_button[0].style.display="block";
	}
	if (unit[0][0].yy > yyy_start) {
			control_button[1].style.display="block";
	}
	if (unit[0][0].xx < xxx_end && unit[0][0].yy > yyy_start) {
			control_button[2].style.display="block";
	}
	if (unit[0][0].xx > xxx_start) {
			control_button[3].style.display="block";		
	}
	if (unit[0][0].xx < xxx_end) {
			control_button[5].style.display="block";
	}
	if (unit[0][0].xx > xxx_start && unit[0][0].yy < yyy_end) {
			control_button[6].style.display="block";		
	}
	if (unit[0][0].yy < yyy_end) {
			control_button[7].style.display="block";
	}
	if (unit[0][0].xx < xxx_end && unit[0][0].yy < yyy_end) {
			control_button[8].style.display="block";
	}

		디버그출력(0,0);
}

시작등록(컨트롤정의);
function 컨트롤정의() {
	control_button = document.getElementById("GameControl").getElementsByTagName("a")	
	control_button[0].onmousedown= function () { // 왼쪽위
		unit[0][0].move_x = -unit[0][0].speed;
		unit[0][0].move_y = -unit[0][0].speed;	
		unit[0][0].anime_type =1;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}
	control_button[1].onmousedown= function () { // 위
		unit[0][0].move_x = 0
		unit[0][0].move_y = - unit[0][0].speed;	
		unit[0][0].anime_type =1;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
	control_button[2].onmousedown= function () { // 오른쪽위
		unit[0][0].move_x = unit[0][0].speed;
		unit[0][0].move_y = - unit[0][0].speed;	
		unit[0][0].anime_type =2;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
	control_button[3].onmousedown= function () { // 왼쪽
		unit[0][0].move_x = - unit[0][0].speed;
		unit[0][0].move_y = 0;	
		unit[0][0].anime_type =1;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)	
	}	
	control_button[4].onmousedown= function () { // 발사버튼
		unit[0][0].anime_type =3;
		unit[0][0].anime_cnt  = 0
	}	
	control_button[5].onmousedown= function () { // 오른쪽
		unit[0][0].move_x = unit[0][0].speed;
		unit[0][0].move_y = 0;	
		unit[0][0].anime_type =2;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
	control_button[6].onmousedown= function () { // 왼쪽아래
		unit[0][0].move_x = - unit[0][0].speed;
		unit[0][0].move_y = unit[0][0].speed;	
		unit[0][0].anime_type =1;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
	control_button[7].onmousedown= function () { // 아래
		unit[0][0].move_x = 0;
		unit[0][0].move_y = unit[0][0].speed;	
		unit[0][0].anime_type =2;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
	control_button[8].onmousedown= function () { // 오른쪽아래
		unit[0][0].move_x = unit[0][0].speed;
		unit[0][0].move_y = unit[0][0].speed;	
		unit[0][0].anime_type =2;
		unit[0][0].anime_cnt  = 0
		유닛좌표계산(0,0,false)
	}	
}

