3. 유성 피하기 게임( 유성 움직이기)
1. 가장 먼저 유성을 여러개 생성할 수 있도록 기존에 pygame.image.load('asteroid.png') 로 유성을 생성하던 코드를
리스트 형태로 반복적으로 만들 수 있게 바꿔준다. (86번)
: star = [pygame.image.load('asteroid.png') for i in range(40)] = 40번을 반복하면서 만들어준다.
:recStar=[None for i in range(len(star))] 는 각 만든 유성의 위치를 리스트로 만들어준다.
그 다음 유성의 개수만큼 반복하면서 만들어주는데, 0,0의 위치에 즉 맨 상단에 만들어주고,
먼저 y의 값으로 -1을 주어 뿌리지 않게 해준다.
2. 유성의 x 위치를 랜덤으로 만들기(52번)
: makeStar()함수를 만들어주고 랜덤 라이브러리를 이용해 x위치에 랜덤값을 스크린 폭길이만큼 만들어준다.
3. 위에서 아래로 떨어지게 만들기 (39번)
: recStar[i].y =-1로 초기화 했던 것을 기억하고 moveStar()함수를 만들어준다.
43번 줄에서 처럼 아직 -1(생성 안됨)이라면 다시 만들어주고 아니라면 y +1을 해서 유성이 아래로 내려가게 해준다.
높이 제한도 걸어준다.
4. 시간차 두기 (62번)
: 위에서 처럼 하면 x값이 분포되어 있는 상태에서 동시에 떨어진다. 따라서 DELAY를 주어서 분산적으로 떨어지게 만들어줘야 한다.
def timeDelay500ms: 함수를 만들어준다.
전역변수로 time_delay_500ms 를 만들어주고 62번줄처럼 조건을 달아준다.
5밀리초 이상이 되면 다시 되돌아가게 하고 return True를 해주고 아니라면 1씩 증가시켜준다.
그리고 5번에 timeDelay500ms가 true일 때의 조건문을 넣어주어 시간을 딜레이 시키며 떨어지게 만들어준다.
그러면 이렇게 분산적으로 유성이 떨어지게 된다.
출처: codingnow