1 урок Введение и подготовка
Скачать 2.7 Mb.
|
5 урок: Функция. Постройкасооружений.From mcpi.mincraft import Minecraft Import mcpi.block as block mc = Mincraft.create() pos= mc.player.getTilePos() mc.setBlocks(pos.x,pos.y,pos.z, pos.x+10,pos.y+10,pos.z+10, block.TNT.id) Мы указываем начальные и конечные координаты и указываем id блока. В результате работы программы мы получим 10*10*10 блоков tnt Попробуем с помощью функции построить следующий дом. from mcpi.minecraft import Minеcraft import mcpi.block as block mc = Minecraft.create () рos = mc.player.getTilePoоs () s = 10 # размер дома х = pos.x + 2 # упрощенный ввод координат y = рos.y z = pos.z def builHouse(x,y,z,s): # две координаты для середины дома mx = x+s/2 my = y+s/2 # фасад дома mc.setBlocks (x, y, z, x + s, y + s, z + s, block.COVBLESTONE. id) # делаемкуб-домаполнымвнутри mc.setBlocks (x + 1 , y, z + 1, x + s-2, y + s - 1, z + s-2, block.AIR.id) # окна mc.setBlocks (x + 3, y + s-3, z mx-3 , my + 3, z, block.GLASS.id) mc.setBlocks (mx + 3, y + s-3, z, x + h-3, my + 3, z, blоck.GLASS.id) # пол внутри дома из щерсти mc. setBlocks (x, y-1, z, x + s, ү-1, z + s, block. WOOL.id) # деревянная крыша mc.setBlocks(x,y+s-1, z, x+s, y+s, z+s, block.WOOD.id) # дверной проём mc.setBlocks (mx1, ү, z, mx, y+2, z, block.AIR..id) Давайте создадим функцию чтобы бы могли определять количество домов, сколько хотим построить, которая будем вызывать предыдущую. def buildSomeHouses(n): pos = mc.player.getTilePos() s = 10 # Размер дома x = pos.x+2 y = pos.y z = pos.z for a in range(n): buildHouse(x, y, z, s) x = x+s+5 buildSomeHouses(12) Задание: Создайте с помощью функции отрисовку шпиля, где также будет вызов размеров и количества (пример постройки снизу). Создайте с помощью функции бассейн, наполненный водой, имеющий стенки, а также чтобы мы могли вызывать функцию с указанием размеров и количеством их отображения. Ответ в тетрадь 6 урок: Создание 2D фигур.Перед началом урока зайдем в командную строку и вводим следующую команду: pip install minecraftstuff В зависимости от версий маинкрафта вам нужно ввести либо pip, либо pip3, но иногда придется в прямую прописывать pip для запуска установки модуля, в данном случае на версии 3.8 он лежит рядом с idle, тогда наша установка будет иметь следующий вид: C:\Users\Имя пользователя\AppData\Local\Programs\Python\Python38-32\Scripts Переходим к папке с помощью команды cd перед указанием пути: Cd C:\Users\Имя пользователя\AppData\Local\Programs\Python\Python3832\Scripts И прописываем команду pip install minecraftstuff. После успешной установки запускаем также наш сервер, нашу IDLE, Minecraft. Подключаемся к серверу. Попробуем воспользоваться только что установленным модулем, для этого к нашему классическому подключению к minecraft используем дополнительно импорт нашей библиотеки. from mcpi.minecraft import Minecraft from minecraftstuff import MinecraftDrawing import mcpi.block as block mc = Minecraft.create() Mcdraw = MinecraftDrawing(mc) pos = mc.player.getTilePos() mcdraw.drawLine(pos.x, pos.y, pos.z, pos.x, pos.y+5, pos.z, block.TNT.id) mcdraw.drawLine(pos.x, pos.y, pos.z, pos.x+5, pos.y, pos.z, block.TNT.id) Запустите модуль, как можете заметить теперь у вас получилось две таких линии у одной меняется координата x, у другой y от начального положения. А давайте одновременно изменим координату как x, так и y. Что получится? mcdraw.drawLine(pos.x, pos.y, pos.z, pos.x+5, pos.y+5, pos.z, block.TNT.id Мы получим диагональ – (линия от одного угла к другому).) Давайте попробуем рисовать не линию, а окружность. Для этого нам потребуется функция drawCircle, в ней мы укажем начальные координаты, то есть нашего центра, радиус, а также материал из которого построим окружность. mcdraw.drawCircle(pos.x, pos.y, pos.z, 20, block.TNT.id) В данном случае мы построили окружность относительно нас с радиусом в 20 блоков Задание: Нарисуйте с помощью кода 2 разных рисунка и запишите ответ в тетрадь |