지난시간에는 파이썬으로 특정 지역에 블록을 만드는 법을 배웠다. 


링크: http://softwares.tistory.com/entry/%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC-1-%EA%B3%B5%EA%B0%84%EC%9D%84-%EB%B8%94%EB%9F%AD%EC%9C%BC%EB%A1%9C-%EC%B1%84%EC%9A%B0%EA%B8%B0


그 문서 끝쪽에서 사용할 수 있는 블록을 나열해 두었는데, 그 목록을 보니 블록 이름마다 번호가 있다. 이 번호를 이용해서 눈앞에서 블록이 바뀌도록 만들어보자.



import mcpi.minecraft as minecraft
import mcpi.block as block
from time import sleep
mc = minecraft.Minecraft()
playerPos = mc.player.getPos()
length = 2
for i in range(100):
    mc.setBlocks(playerPos.x+1, playerPos.y+1, playerPos.z+1, playerPos.x+length, playerPos.y+length, playerPos.z+length,block.Block(i))
    sleep(1)

위 코드를 보면 3째줄과 7째, 9째 줄이 처음 보는 것이고 8째줄은 지난 시간에 배운 것과 거의 같다. 3째 줄은 9째 줄을 위해서 필요하다. 9째 줄이 없으면 코드실행을 했을 때 순식간에 블록이 다 교체되어 실행되는 것을 제대로 보지 못하므로 1초마다 블록이 바뀌도록 하기 위해 추가했다.


이 예제에서는 총 100종류의 블록이 나온다. block.Block(0)부터 block.Block(99)까지 블록번호가 하나씩 변하도록 하기 위해 for문을 사용했다.(7째 줄) range() 안의 숫자를 바꾸면 나오는 블록의 개수는 조절할 수 있다.


이것을 실행하면 다음과 같이 블록이 변한다.



지금 예제에서는 파이썬을 실행할 때 있었던 위치에서만 계속 새로운 블록이 생기는데, 5째 줄도 for 블록 안으로 들어가면 위치도 계속 바뀌게 할 수 있다.


여기서 주의할 점은, 파이썬은 들여쓰기를 통해 for로 반복이 되는 명령들이 어느것인지를 표시하므로, for 안에서 실행할 새로운 명령이 있다면 반드시 위에서처럼 같은 정도로 들여쓰기를 해 줘야 한다.

+ Recent posts