2016-11-11 1 views
1

안녕 얘들 아 내가 이걸 좀 도와 줄 수 있는지 궁금 해서요. 파이썬에서 클래스를 배우고 그것을 유니의 현재 프로젝트에 통합하려고합니다.파이 게임 | 블리치 이미지가 온통 점프 계속됩니다

그래서 아래에 기본적으로이 클래스는 내가 '소행성을'에서로드하는 데 필요한 모든 데이터를 통합 클래스의 코드로-아니라 그것을

class Asteroid(): 
    def __init__(self, char, startX, startY): 
     self.char = char 
     self.startX = startX 
     self.startY = startY 
     self.drawChar() 

    def drawChar (self): 
     self.space = pygame.image.load (self.char) 
     self.space = self.space.convert_alpha() 
     gameDisplay.blit(self.space, 
      (random.randint(0,display_width), 
      random.randint(0,display_height))) 

에 의해 사용되는 몇 가지 변수입니다.

asteroid = [ 
    'Sprites/Asteroid1.png', 
    'Sprites/Asteroid2.png', 
    'Sprites/Asteroid3.png'] 

따라서 발생하는 실제 문제 : 또한 아래 변수 asteroid 대한 코드가

Asteroid(random.choice(asteroid),200,300) 

아래

클래스가 실제로 사용되는 메인 코드의 일부 코드를 실행할 때 소행성이 표면에 블리딩되지만 그들은 모든 곳을 뛰어 넘고 있습니다. 그뿐만 아니라 다른 소행성이 소행성이 선택된 하나의 소행성보다 오히려 피를 흘리고 있습니다. 왜 이런 일이 발생합니까?

소행성의 소행성도 흰색 배경입니다. 변환하려고 시도했지만 도움이되지 않습니다.

+0

downvote가있는 이유는 확실하지 않습니다. 그것은 정당하지 못한 질문 일지라도 정당한 질문입니다. –

답변

1

당신이 말했기 때문에. 코드

gameDisplay.blit(self.space, 
      (random.randint(0,display_width), 
      random.randint(0,display_height))) 

문자 그대로 "이미지를 임의의 위치에서 디스플레이에 blit"이라고 말합니다. 특히 random.randint(0,...)은 0부터 화면 크기까지 임의의 위치를 ​​선택합니다.

게임을 시작할 때뿐만 아니라 화면을 업데이트해야 할 때마다이 표시 코드가 호출됩니다. 정적 좌표로 표시하려면 좌표를 정적으로 설정하십시오.

gameDisplay.blit(self.space, (self.startX, self.startY)) 
+0

와우, 나는 이것을 몰랐다. 미안 해요, 만약 내가 바보처럼 보이면 여전히 클래스의 개념을 살펴보십시오. 흰색 배경을 가진 내 이미지에 대한 아이디어가 있습니까? – Lucky38i

+1

이 답변으로 도움이 될 경우 선택하십시오. 흰색 배경은 완전히 별개의 문제이므로 별도의 질문을하는 것이 좋습니다. –