게임 만들기 1. PyGame 써보는 심심해서

본론 # ma인사이드. 2. 만간에 포스팅이네요. 머리말일직 근사를 서는데 극히 심심해서 Py경기 강석를 보다가심심해서 글을 써보며 만들어보는 겨를을 갖겠습니다.

self. # 경기 가경면을 세팅합니다. 인사이드it() # py경기을 전기화 합니다. pyimport py경기, sysFPS = 60WIDTH, HEIGHT = 1280, 720class 경기(object):def __인사이드it__(self):py경기.

py경기. set_mode((WIDTH, HEIGHT))# 경기 창 명을 수립합니다. 전시. 실버스크린 = py경기.

clock = py경기. self. set_caption(‘Duret 경기’)# FPS를 수립하기위한 세팅입니다. 전시.

행사. def run(self):while True: # 무한히 돌리는데# py경기. Clock()# 경기 가경면을 계속 보여주기 위험 돌리는 루프입니다. time.

type 이 py경기. 게다짝():# 행사. 행사. 게다짝() 을 통석 얻는 이벤트들을 확인할건데,for 행사 인사이드 py경기.

quit()sys. QUIT:# 종료해라py경기. type == py경기. QUIT 뒤 if 행사.

전시. fill(‘블랙커피’)# 가경면 업데이트 주기는py경기. 실버스크린. exit()# 그게 강호에면 가경면을 껌정으로 채워라self.

run()제 경험상에서, 전기 작성은 이렇게 시작하는게 제일 깔끔해 보입니다. tick(FPS)if __name__ == “__ma인사이드__”:경기 = 경기()경기. clock. update()# FPS로 세팅해라(FPS당 언젠가 가경면 업데이트해라)self.

self. 이게 고개인게 , 아무것도 하지 않았기 때문에 아무것도 없는거거등요. 거행하면 아무것도 없습니다. 각주을 달아두었으니, 일단 읽어시주면 이해는 되실겁니다.

fill(‘블랙커피’) 갈래을 와이샤쓰로 바꾸면 하얗게 나옵니다. 실버스크린. fill(‘와이샤쓰’)self. 실버스크린.

딴건 잘 모르겠고 그럭저럭 플레이어부터 만들어볼까요? – 개성 꾸미다 #ma인사이드. 일단은 클래스를 작성할 겁니다. ) 대답없이 도모없이 할일없이 그냥 글을 적고있어서뭘할지 모르겠는데, 일단 그냥 손가는데로 부호를 작성해보겠습니다. (동기품으로 blue, red, orange가 있습니다.

png기록철 다운로드 py경기에서는 이미지를 불러오는 기법이 딱 단독밖에 없습니다. 아등에게 귀중하다건 곡절이잖아요? 그쵸? 저는 그런거 없고 무급배포할게요첨부기록철player. 가경판을 켜고 가경을 슥삭슥삭저작권 문제로개성를 대강 그렸습니다. py 에 가미class Player(object):여권아무 도모이 없더라도 클래스를 작성하는 등시 머 필요한것들이 튀어나오긴 하네요 플레이어가 일단 나왔으니, 플레이어 이미지가 있어야겟죠?그럭저럭 전형적인 탑다운 꼴의 경기을 만들어보겠습니다.

그래서 일단은 플레이어 이미지를 불러와야겠고그 다음은 그 이미지를 가경면에 뿌려줘야겠죠(blit) 딴 대화로 blit이 끼얹다건줄알고 색인했더니 안이 강호에? blit 뜻이 블릿이라니 아무튼 이미지를 불러오고 뿌려주는 부호를 넣어봅시다. load( load file path )그 다음에는 그 이미지를 수정하던가 합니다. 상. py경기.

load(‘player. 상. 상 = py경기. class Player(object):def __인사이드it__(self):self.

class Player(object):def __인사이드it__(self):self. (x, y, w, h) 꼴으로 x,y 곳에 w,h 의 각형을 그려라 하는 구성거든요. 왜 rect냐이런식으로 가경을 구이건데 그 가경의 구성들이 다 각형 rectangle 구성를 취하기 때문이죠. png’)예에서 이미지를 그리려면 이미지 규모를 알아야 구이 수 있겠죠?이미지의 규모를 알아내는 건rect 라는 명령어입니다.

png’)self. load(‘player. 상. 상 = py경기.

그 다음은 이제 뿌려주는 부호를 넣을겁니다. 게다짝_rect()이렇게 해주면 어떻게 구이지에 대해서 넣어주게 됩니다. 상. rect = self.

아등는 그 경기판에 플레이어를 표시하는것 뿐이구요. 보드경기을 할 때 Player말이 어디에 올라갈까요? 경기 판에 올라갑니다. class 경기Board(object):def __인사이드it__(self):여권보드경기을 관심해봅시다. 그러기 위험 또 경기 판을 단독 더 만들어줄겁니다.

# 밑의 명령어는 전시에 고용할 surface를 가져와라 라는 곡절이죠. class 경기Board(object):def __인사이드it__(self):# py경기에서는 가경면, 이미지 등을 surface라는 낱말로 고용합니다. 경기판에 뿌리기 위험선 일단 경기 가경면을 불러와야 합니다. 그래서 실질적인 끼얹다 동작들은 이 경기판에서 벌어져야 합니다.

게다짝_surface()# player 클래스를 고용해서 경기판에 불러옵니다. 전시. 전시_board = py경기. self.

blit( 상, rect) 종합하면,class 경기Board(object):def __인사이드it__(self):# py경기에서는 가경면, 이미지 등을 surface라는 낱말로 고용합니다. surface. player = Player()이제 이 surface에서 blit이라는 명령어를 통석 이미지를 뿌려보겠습니다. self.

전시. 전시_board = py경기. self. # 밑의 명령어는 전시에 고용할 surface를 가져와라 라는 곡절이죠.

전시_board. player = Player()def draw(self):# 플레이어 이미지를 플레이어 rect 규모로 경기판에 뿌려라self. self. 게다짝_surface()# player 클래스를 고용해서 경기판에 불러옵니다.

player. 상, self. player. blit(self.

인사이드it() # py경기을 전기화 합니다. 이렇게 경기 보드를 다 만들었다면 이제 본경기에 불러와서 고용해 봐야겠죠class 경기(object):def __인사이드it__(self):py경기. darw 는 플레이어 이미지를 플레이어 규모로 끼얹다 부호를 고용하게 됩니다. rect)경기Board.

전시. 실버스크린 = py경기. self. # 경기 가경면을 세팅합니다.

set_caption(‘Duret 경기’)# FPS를 수립하기위한 세팅입니다. 전시. py경기. set_mode((WIDTH, HEIGHT))# 경기 창 명을 수립합니다.

Clock()# 경기판을 불러옵니다. time. clock = py경기. self.

행사. def run(self):while True: # 무한히 돌리는데# py경기. 경기_board = 경기Board() # 가미# 경기 가경면을 계속 보여주기 위험 돌리는 루프입니다. self.

type 이 py경기. 게다짝():# 행사. 행사. 게다짝() 을 통석 얻는 이벤트들을 확인할건데,for 행사 인사이드 py경기.

quit()sys. QUIT:# 종료해라py경기. type == py경기. QUIT 뒤 if 행사.

self. fill(‘블랙커피’)# 경기Board를 그립니다. 실버스크린. exit()# 그게 강호에면 가경면을 껌정으로 채워라self.

update()# FPS로 세팅해라(FPS당 언젠가 가경면 업데이트해라)self. 전시. draw() # 가미# 가경면 업데이트 주기는py경기. 경기_board.

거행해 보면 밑와 같습니다. 다소 독립적으로 관심해보면 쉽습니다. tick(FPS)경기을 전기화시키는 __인사이드it__에서 클래스를 불러왔고,경기이 구동되는 run 안에 경기보드를 긋다 draw를 매 FPS마다 거행해주는겁니다. clock.

!움직여본 이제 움직여볼 차례입니다. 금방 위의 가경면 같은 과우에는 가만색을 채우고 그다음에 개성를그렸기에 저렇게 나왔지,개성를 그리고 가만색을 채우면 아무것도 안나옵니다 . 늠름한 자태예에서 귀중하다건 긋다 경로입니다.

py경기. 그럼 어떻게 해야 하느냐 이미 py경기은 수많은 고민들을 통석 이것저것 다 장만돼있습니다. 그럼 아등는 복잡한 부호 없이방향키에 맞게 이 rect를 맞추다주는 부호만 넣으면 알아서 플레어 개성가 움직이는걸 볼 수 있게 되는겁니다. 경기 보드의 draw를 시주면,플레이어의 곳를 rect로 긋다 갈래이 있는데요, 플레이어를 움직인다는건 이 플레이어 rect곳를 조절해주는 것과 같습니다.

class Player(object):def __인사이드it__(self):self. 그러면 이걸 검사검사해서 플레이어 곳를 양도시켜주면 되겠죠 player 클래스에 곡절을 더 가미하면 이렇게 됩니다. 게다짝_pressed()를 고용하면목하 누르고 있는 키가 어떤건지 그에 엄동설한 리스트를 교납해줍니다. 건반.

png’)self. load(‘player. 상. 상 = py경기.

건반. 게다짝_rect()def 인사이드put(self):건반s = py경기. 상. rect = self.

centery -= 5# 다운 키를 누를 때 y값이 커짐if 건반s[py경기. rect. K_UP]:self. 게다짝_pressed()# 업 키를 누를 때 y 값이 작아짐if 건반s[py경기.

K_LEFT]:self. centery += 5# 부채잡이 키를 누를 때 x값이 작아짐if 건반s[py경기. rect. K_DOWN]:self.

rect. K_RIGHT]:self. centerx -= 5# 바른쪽 키를 누를 때 x값이 커짐if 건반s[py경기. rect.

# 밑의 명령어는 전시에 고용할 surface를 가져와라 라는 곡절이죠. class 경기Board(object):def __인사이드it__(self):# py경기에서는 가경면, 이미지 등을 surface라는 낱말로 고용합니다. 그리고 플레이어를 그려주고 나서 고용자의 인풋도 읽게끔 불러옵니다. centerx += 5예에서 elif가 아닌 if를 쓴 곡절는 맞모금도 허용하기 위험서입니다.

게다짝_surface()# player 클래스를 고용해서 경기판에 불러옵니다. 전시. 전시_board = py경기. self.

blit(self. 전시_board. player = Player()def draw(self):# 플레이어 이미지를 플레이어 rect 규모로 경기판에 뿌려라self. self.

rect)# 고용자의 인풋을 읽습니다. player. 상, self. player.

결론 근사겨를도 슬슬 다 끝나가고결론 지어보겠습니다. 인사이드put() 아주아주 경거하게 움직이는군요 3. player. self.

언제나 또 쓸지모르겠으나 다음에 또 겨를되면 적어보겠습니다 항상 행복하세요. 이 다음으로 제가 할 수 있는건 플레이어 벡터 도입타일셋 고용지도 그리기맵 사진기 도입 이 있고 그밖에 사항으로는애니메이션 도입 쉐이더 도입등등 있을겁니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다