2023.08.17 - [강의자료/텍스트기반SW] - [파이썬] 파이게임 객체 임의의 위치로 이동하기
이전 시간에 만든 프로젝트에서 강아지 객체를 새로 만들어 보고 임의의 위치에서 5마리 정도를 생성하여 임의의 위치로 이동하는 것을 살펴 봅니다.
객체를 만들기 위한 이미지는 파이게임 튜토리얼(https://github.com/formazione/pygame_tutorial)에 있는 이미지를 사용하겠습니다.
Dog 객체생성
Dog 객체는 Cat 객체를 그대로 복사하여 이미지 읽어 오는 디렉토리만 변경 했습니다.
class Dog(Animal):
def __init__(self,location=(0, 0),imgsize=(50,50),walkSpeed=3,jumpSpeed = 5,runSpeed = 7,changeFrame=30):
...
def ordered_list_of_surfaces(self):
if self.dir == 'W':self.flipped=True
elif self.dir == 'E': self.flipped = False
self.los =[]
if self.flipped :
self.los = [
pygame.transform.flip(pygame.image.load(img), True, False)
for img in glob.glob(f"dog\\{self.action}*.png")
]
else :
self.los = [
pygame.image.load(img)
for img in glob.glob(f"dog\\{self.action}*.png")
]
print('image Loading')
return self.los
...
Dog/Cat 객체 5개 생성
Dog/Cat 객체를 5개를 생성하여 5개가 임의의 위치로 이동하는 코드를 작성해 보겠습니다.
먼저 Dog/Cat 객체를 5개 생성할 리스트를 만듭니다.
dogcatList = []
for i in range(5): #5번 동작하면서 dog/cat 을 생성하여 dogcatList에 append
imsiX = random.randrange(100,SCREEN_WIDTH - 100)
imsiY = random.randrange(100, SCREEN_HEIGHT - 100)
if i % 2 == 0: #0,2,4 에서 Cat
dogcatList.append(Cat((imsiX,imsiY)))
else: # 1,3 에서 Dog
dogcatList.append(Dog((imsiX, imsiY)))
고양이 3마리와 강아지 2마리를 생성하여 dogcatList에 담았고 생성되는 위치는 임의의 위치로 정했습니다.
그 다음으로 리스트에 있는 강아지와 고양이를 임의의 방향으로 이동하는 코드를 만들어 보겠습니다.
while True:
screen.fill((255, 255, 255))
person.update()
'''
cat.action = "Walk"
cat.dirChange()
cat.move()
cat.update()
'''
screen.blit(person.image, person.rect)
for catdog in dogcatList:
catdog.action = "Walk"
catdog.dirChange()
catdog.move()
catdog.update()
screen.blit(catdog.image, catdog.rect)
...
실행화면
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'강의자료 > 텍스트기반SW' 카테고리의 다른 글
[파이썬] 클래스별 파일로 관리하기 (36) | 2023.10.13 |
---|---|
[파이썬] 파이게임 객체 임의의 위치로 이동하기 (10) | 2023.08.17 |
[파이썬] 파이게임 객체 상속 (27) | 2023.08.10 |
[파이썬] 파이게임 객체 생성 (13) | 2023.07.27 |
[파이썬] 파이게임 사용법 (18) | 2023.07.21 |