bomjin / Android-Studio-Application-

안드로이드 스튜디오를 활용한 실전 앱 만들기
1 stars 0 forks source link

미사일 클래스와 행성 클래스 만들기 p169 #32

Open bomjin opened 5 years ago

bomjin commented 5 years ago

미사일 클래스와 행성 클래스 만들기

Hander

Hander를 활용해서 특정한 부분을 일정한 간격으로 반복해서 호출할 수 있다. View에서는 onDarw() 메소드를 통해 그림이나 문자를 그릴 수 있다. invalidate() 메소드 onDarw 메소드를 호출하여 변화된 미사일, 우주선, 행성의 위치를 새로 그려준다. View 생성자 영역에 코드작성

MyView(Context context) {

gHandler.sendEmptyMessageDelayed(0,1000 );
}

//또한 다음 소스를 View 마지막 전에 넣는다.
Handler gHandler = new Handler(){
 public void handleMessage(Message msg) {

//반복 처리부분
invalidate(); //
gHandler.sendEmptyMessageDelayed(0,1000); //1000은 1초 딜레이한 후 다음 문장이 실행
}
};

ArrayList를 이용한 행성 만들기

add, remove()메소드 사용

ArrayList<클래스명> 객체명; //클래스형태의 ArrayList 객체를 선언
객체명 = new ArrayList<클래스명> //객체를 생성한다.

moveMissile() 메소드 만들기

행성을 움직이고 화면에서 벗어난 행성은 제거한다. ArrayList의 get(i) 메소드를 이용하여 i 번째 planet의 x좌표, y좌표 값을 얻을 수 있다.

Random 클래스를 이용한 행성 만들기

난수를 발생시켜서 처음 생성한 행성의 위치가 랜덤으로 돌아다니도록한다. Random 클래스 > r1의 객체 생성 nextInt()메소드 사용

Random r1 = new Random();
int x = r1.nextint(Width); //Width-1의 값을 랜덤한 값이 x에 저장된다.
if(planet.size()<5) //행성의 개수가 5개 미만이면
planet.add(new Planet(x, -100)) //행성을 추가한다.

확장 for 구문을 사용해서 행성 그리기

표기법 : for(자료형 임시변수 : 배열)
for(Plant tmp : planet)
canvas.drawBitmap(planetimg, tmp.x, tmp.y , p1 );
bomjin commented 5 years ago

https://github.com/bomjin/Android-Studio-Application-/tree/GameBasic2