파이썬 우주선게임 코드분석[2]

이정민·2021년 4월 27일
0
<script>

class Missile(pygame.sprite.Sprite):
	def __init__(self, xpos, ypos, speed):
    	super(Missile, self).__init__()
    	self.image = pygame.image.load('missile.png')
    	self.rect = self.image.get_rect()
    	self.rect.x = xpos
    	self.rect.y = ypos
    	self.speed = speed
    	self.sound = pygame.mixer.Sound('missile.wav')
    
    def launch(self):
    	self.sound.play()
        
    def update(self):
    	self.rect.y -= self.speed
        if self.rect.y + self.rect.height < 0:
        	self.kill()
    
    def collide(self, sprite):
    	for sprite in sprites:
        	if pygame.sprite.collide_rect(self, sprite):
            	return sprite
</script>
    

우주선게임 코드분석[1]에서 Missile클래스와 차이점은 생성자에 매개변수가 있다.
마찬가지로 상위클래스를 상속받아서 변수를 초기화시켜준다.
미사일은 위치 값을 받아와야하기 때문에 xpos, ypos을 받는다.
self.rect.x = xpos를 매개변수로 넣어주는 이유는 우주선에서 미사일이 발사되는것 처럼 보이게 하려고
우주선의 현재 위치에 대한 값을 넣는 용도로 사용
self.sound는 미사일 발사 때 소리를 위해 사용

def launch(self):에서 미사일 발사 때 self.sound.play() 실행

def update(self): 화면에 미사일이 있을 때 rect.y좌표를 - self.speed만큼 빼줘서 위치를 이동시킨다. if문으로 y좌표와 미사일위치를 알려주는 사각형self.rect.height을 더한 값이 < 0보다 작을 때 없애도록 만든다.

def collide를 통해서 미사일도 충돌여부를 판단해준다.

profile
안녕하세요.

0개의 댓글