Eevee를 입력하면 이브이의 도감번호와 이미지를,
Pikachu를 입력하면 피카츄의 도감번호와 이미지를 불러옵니다.
formChange 인자에 해당하는 숫자를 입력해주면 다른 모습의 이미지를 불러옵니다.
피카츄의 암수 모습의 차이와 아직 미공개된 모자 피카츄의 모습도 formChange로 퉁쳤습니다.
아래는 사용한 스프라이트 데이터와
사용한 부분의 소스 코드입니다
debugText = 'Pikachu'
drawText('%s No. %s' % (debugText, getAloladexNumber(debugText),), BASICFONT, DISPLAYSURF, 0, 16)
drawSprite(debugText, 5, DISPLAYSURF, 0, 32)
def drawSprite(monsterName, formChange, surface, x, y):
aloladexNumber = getAloladexNumber(monsterName)
# 알로라 도감 번호를 불러온다
spriteIndex = SPRITEINDEX['sprite_index'][str(aloladexNumber)][str(formChange)]
# 알로라 도감 번호와 폼체인지(암수 차이, 메가진화 포함)의 key로 value(스프라이트시트에서의 순서)를 찾는다.
sheet = IMAGESDICT['dex' + str(spriteIndex[0]) + 'gen']
# 해당하는 스프라이트시트를 찾아온다. spriteIndex[0]은 세대 번호다.
coordinates = [spriteIndex[1] % SPRITEROW - 1, spriteIndex[1] // SPRITEROW]
# SPRITEROW는 alpha 버전 기준 8이다.
drawText('%s' % (str(spriteIndex[1])), BASICFONT, DISPLAYSURF, 0, 140)
drawText('%s' % (str(coordinates)), BASICFONT, DISPLAYSURF, 0, 160)
# 디버깅용 문자열 출력 코드다.
pixelCoordinates = [coordinates[0] * (SPRITESIZE + 1) + 1, coordinates[1] * (SPRITESIZE + 1) + 1]
# 좌표계를 픽셀로 바꾼다.
spriteArea = pygame.Rect(pixelCoordinates, (SPRITESIZE, SPRITESIZE))
# Area를 설정한다. 픽셀 좌표계의 위치의 SPRITESIZE 크기의 사각형을 설정.
surface.blit(sheet, (x, y), spriteArea)
# Surface에 blit한다.
오오 능력자시네요....말없이 추천만....