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의 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)) //행성을 추가한다.
미사일 클래스와 행성 클래스 만들기
Hander
Hander를 활용해서 특정한 부분을 일정한 간격으로 반복해서 호출할 수 있다. View에서는 onDarw() 메소드를 통해 그림이나 문자를 그릴 수 있다. invalidate() 메소드 onDarw 메소드를 호출하여 변화된 미사일, 우주선, 행성의 위치를 새로 그려준다. View 생성자 영역에 코드작성
ArrayList를 이용한 행성 만들기
add, remove()메소드 사용
moveMissile() 메소드 만들기
행성을 움직이고 화면에서 벗어난 행성은 제거한다. ArrayList의 get(i) 메소드를 이용하여 i 번째 planet의 x좌표, y좌표 값을 얻을 수 있다.
Random 클래스를 이용한 행성 만들기
난수를 발생시켜서 처음 생성한 행성의 위치가 랜덤으로 돌아다니도록한다. Random 클래스 > r1의 객체 생성 nextInt()메소드 사용
확장 for 구문을 사용해서 행성 그리기