본문 바로가기
프로그래밍/마인크래프트

파이썬 마인크래프트 : player 관련 함수

by 인성패밀리 2022. 6. 16.
반응형

마인크래프트와 파이썬의 연동은 차후 글을 올리도록 하겠습니다.

 

마인크래프트에서 player 관련 함수들을 살펴보겠습니다.

 

from mcpi.minecraft import Minecraft
mc = Minecraft.create()  # 서버와 연결

# 정수 형태 플레이어 좌표
pos_integer = mc.player.getTilePos()
print(pos_integer)

# 실수 형태의 플레이어 좌표
pos_float = mc.player.getPos()
print(pos_float)

위 코드에 대한 실행 결과입니다.

실제 마인크래프트의 좌표를 살펴보겠습니다.

출력된 좌표와 실제 마인크래프트간 차이가 있습니다.

 

출력된 좌표 - 미지수 = 실제 좌표

이 계산대로 미지수를 구해보겠습니다.

 

7 - x = -232

18 - y = 96

21 - z = 229

 

x = 239

y = -78

z = -208

로 결과가 나왔습니다. 이 좌표를 가지고 실제 원하는 좌표로 이동해보겠습니다. 

더욱 정확히 계산을 하려면 플레이어가 op 권한을 가지고 마인크래프트 안에서 "/gamemode creative" 명령어를 입력하여 무적 상태에서 다음 코드를 입력하고 실제 좌표와 계산하면 됩니다.

from mcpi.minecraft import Minecraft
mc = Minecraft.create()  # 서버와 연결

mc.player.setTilePos(0,0,0)  # 해당 좌표로 텔레포트

x = 240

y = -78

z = -208

정확히 계산 결과 x좌표의 값이 240으로 확인되었고, 나머지는 결과값이 다르지 않았습니다.

 

이제 현재 좌표를 받아와서 x좌표로 5만큼, z좌표로 3만큼만 이동해보겠습니다.

from mcpi.minecraft import Minecraft
mc = Minecraft.create()  # 서버와 연결

x = 240
y = -78
z = -208

now_pos = mc.player.getTilePos()
print(now_pos)

mc.player.setTilePos(now_pos.x+5,  # x좌표 5만큼 이동
                     now_pos.y+0,
                     now_pos.z+3)  # z좌표 3만큼 이동

그러나 이렇게 움직이기보다 실제로 마인크래프트를 하면 해당 좌표로 움직이는 일이 많이 있을 것입니다. 실제 좌표를 가지고 움직이는 것으로 함수로 만들어보겠습니다. 마인크래프트 내부에도 tp 명령어가 있지만 이를 파이썬으로 만들어보겠습니다.

 

from mcpi.minecraft import Minecraft

# 파이썬과 마인크래프트의 각 축의 괴리값
X_AXIS = 240
Y_AXIS = -78
Z_AXIS = -208


def move_player(x, y, z):
    """이동하고 싶은 x, y, z좌표"""
    mc.player.setTilePos(x+X_AXIS, y+Y_AXIS, z+Z_AXIS)


mc = Minecraft.create()  # 서버와 연결
move_player(-220, 74, 361)  # 실제 가고싶은 좌표 입력

 이렇게 가고 싶은 좌표를 입력하면 갈 수 있도록 함수로 만들어보았습니다.

반응형

댓글