그래, 좋아, 나는 주어진 시간에 한 인스턴스에만 존재할 필요가있는 내 게임 (플레이어, 보스, 레벨 골 ...) 따라서 객체로 인스턴스화해야 할 필요가있는 클래스로 처음 존재하는 것보다 수동으로 선언 된 스프라이트로 이러한 코드를 단순화하여 코드를 단순화하고 싶습니다.파이 게임 1.9.3 : 그룹에 스프라이트 추가 (클래스 없음)
(많은 어쨌든 클래스로 그룹 모두에 가장하지만 난 그 동의 여부를 말할 것 -. 확실히 단지의 경우이 주위에 방법을 알고하는 것이 유용 할 수 it'd)
나는 것 히트 감지 (그리고 화면에 그려지는)를 목적으로 그룹에서 스프라이트를 갖는 것을 좋아합니다. 그러나 이것에 문제가 있습니다. 필자는 고립 된 "클래스가없는"스프라이트를 만들어 목록에 추가하는 것이 매우 간단하다고 생각했습니다.
bloobList = pygame.sprite.Group()
blooby = pygame.sprite.Sprite
blooby.image = pygame.Surface([200,200])
blooby.image.fill([0,0,0])
blooby.rect = blooby.image.get_rect()
bloobList.add(blooby)
것은 그러나이 프로그램을 실행할 때, 발사시 응용 프로그램이 충돌합니다. 나는 주위 이것이 의미하는 어떠한 답을 찾을 수 없습니다 무엇을 찾고 봤 한
builtins.TypeError: add_internal() missing 1 required positional argument: 'group'
: 내 IDE는 378 행으로 저를 받아 나에게 말한다, 파이 게임 라이브러리에서 sprite.py을 엽니 다. 자신을 확인하기 위해 동일한 프로그램에 시나리오를 추가하는 클래스 + 개체 + 그룹을 썼습니다.
moochList = pygame.sprite.Group()
class Mooch(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([200,200])
self.image.fill([0,0,0])
self.rect = self.image.get_rect()
stootch = Mooch()
moochList.add(stootch)
그리고 평소와 같이 완벽하게 작동합니다. 나는 Pygame.org의 문서를 체크했는데 그룹에 추가되기 위해 스프라이트가 클래스에서 생성 된 객체 여야한다고 특별히 말한 것은 아니지만 "클래스없는"스프라이트도 허용된다고 특별히 말한 것은 아닙니다.
필자는 Pygame을 처음 접했을 때 매우 새로운 점을 알고 있었기 때문에 클래스가없는 스프라이트가 그룹에 허용되어야한다고 생각하게 만든다. group.add function 은 스프라이트가 속한 클래스에 대한 언급없이 이름 지정된 특정 스프라이트와 그룹 자체에 관련됩니다.