Главная страница
Навигация по странице:

  • 6 урок: Создание 2

  • pip install minecraftstuff

  • 1 урок Введение и подготовка


    Скачать 2.7 Mb.
    Название1 урок Введение и подготовка
    Дата24.01.2023
    Размер2.7 Mb.
    Формат файлаdocx
    Имя файлаKonspekt_Python (2).docx
    ТипУрок
    #903253
    страница4 из 7
    1   2   3   4   5   6   7

    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 разных рисунка и запишите ответ в тетрадь

    1   2   3   4   5   6   7


    написать администратору сайта