본문 바로가기
IT/python

tkinter 를 이용한 게임 만들기 ( feat. 파이썬 으로 배우는 게임 개발 실전편 )

by 가능성1g 2024. 7. 21.
반응형

image_penpen.zip
0.05MB

 

MaplestoryFont_TTF.zip
0.86MB

 

!실행방법!

python 을 설치하고, 첨부된 메이플스토리 폰트를 설치한다음,

게임압축해제후 python main.py 로 실행!

python 은 3.10.6 에서 개발했지만, 특별한 디펜던시도 없고 특징이 없으니 3.x 이면 모두 실행 가능할 것이라 생각!

 

!주요 소스 분석!

## 전역변수를 쓸때 함수내에서는 global 키워드 를 이용한다. 
def set_chara_pos():
    global pen_x, pen_y, pen_d, pen_a
    
## tkinter 에서 폰트이용 방법 및 그림자효과를 위해서 2개를 겹쳐서 출력하는 테크닉
def draw_txt(txt, x, y , siz, col):
    fnt = ("메이플스토리 Bold", siz)
    #그림자같이 표기
    canvas.create_text(x+2, y+2, text=txt, fill="black", font=fnt, tag="SCREEN")
    canvas.create_text(x,y,text=txt, fill=col, font=fnt, tag="SCREEN")
    
## 키입력은 bind 함수를 이용하며, keysym 을 이용하면 키코드가 아니라 이름으로 판단가능!
def key_down(e):
    key = e.keysym
    
## 이미지 출력방법, 태그를 이용해서, 같은화면에 출력 및 제어
def draw_screen():
    canvas.create_image(pen_x, pen_y, image=img_pen[pen_a], tag="SCREEN")
    
## 메인루프를 위해 after 함수 이용해서 0.1 초마다 갱신하면서 tmr 카운트로 프레임조절!
def main():
    tmr = tmr + 1
    root.after(100, main)    
    
## 메인루프는 가장 밖에 선언 하고, key bind 하는 부분
root = tkinter.Tk()
root.bind("<KeyPress>", key_down)
root.bind("<KeyRelease>", key_up)
root.mainloop()

 

반응형