반응형
이전 포스팅에서 다룬 텔레포트와 tkinter 모듈을 사용하여 GUI 창을 통해 마인크래프트의 텔레포트 기능을 만들어보겠습니다.
from tkinter import *
from mcpi.minecraft import Minecraft
X_AXIS = 240
Y_AXIS = -78
Z_AXIS = -208
mc = Minecraft.create() # 서버와 연결
def tp():
"""원하는 좌표로 이동"""
# x = int(input_x.get())
# y = int(input_y.get())
# z = int(input_z.get())
xyz = []
for val in range(3): # 각 좌표값을 받아옴
temp = int(input_list[val].get())
xyz.append(temp)
mc.player.setTilePos(xyz[0]+X_AXIS, xyz[1]+Y_AXIS, xyz[2]+Z_AXIS)
def my_home():
"""집으로 이동"""
mc.player.setTilePos(-226 + X_AXIS, 63 + Y_AXIS, 353 + Z_AXIS)
root = Tk()
root.geometry("500x600")
root.minsize(500, 600)
root.maxsize(500, 600)
root.title("나만의 마인크래프트 툴")
tp_label = LabelFrame(root, text="원하는 위치 텔레포트", font=('돋움', 20, 'bold'))
tp_label.pack(fill='x', padx=5, pady=5)
for index, name in enumerate(['x좌표', 'y좌표', 'z좌표']):
Label(tp_label,
text=name,
font=('굴림', 15)).grid(row=index,
column=0,
padx=5,
pady=5)
# xyz 입력창
input_list = [
Entry(tp_label, width=20, font=('굴림', 15)),
Entry(tp_label, width=20, font=('굴림', 15)),
Entry(tp_label, width=20, font=('굴림', 15))
]
for i in range(3):
input_list[i].grid(row=i,
column=1,
padx=5,
pady=5)
but1 = Button(tp_label, text="텔레포트", width=7, command=tp)
but1.grid(row=3, column=0, padx=5, pady=5)
but2 = Button(tp_label, text="우리 집", width=7, command=my_home)
but2.grid(row=3, column=1, padx=5, pady=5)
root.mainloop()
해당 코드를 실행하면 다음과 같은 창이 만들어집니다.
지난 포스팅에서 다룬 내용에 GUI를 넣은 것 밖에 없습니다.
텔레포트 기능이 사실 tp명령어를 이용하면 되지만 공부한 파이썬으로 이렇게 만들어본다는 점이 상당히 재미있었습니다.
조만간 간단하게 GUI를 만들 수 있는 과정을 담아보겠습니다.
반응형
'프로그래밍 > 마인크래프트' 카테고리의 다른 글
파이썬 마인크래프트 : 파이썬과 마인크래프트 1.19버전 연동 방법 (5) | 2022.06.29 |
---|---|
파이썬 마인크래프트 : 파이썬을 멀티로 사용하는 방법 (0) | 2022.06.22 |
파이썬 마인크래프트 : 플레이어가 바라보는 방향 (2) | 2022.06.17 |
파이썬 마인크래프트 : player 관련 함수 (0) | 2022.06.16 |
댓글