2016-07-04 2 views
0

Так что я спросил на spigotmc, форуме minecraft и не получил от него большой информации. В принципе, я хотел создать код skyblock, где, в сущности, порождает блок каждые 100 блоков далеко, так это выглядит примерно так:Создание спирали с зазорами и возврат к последней точке спирали

|X|X|X|X|X|X|X|X|X|X| 
|X|O|X|O|X|O|X|O|X|O| 
|X|X|X|X|X|X|X|X|X|X| 
|X|O|X|O|X|O|X|O|X|O| 
|X|X|X|X|X|X|X|X|X|X| 
|X|O|X|O|X|O|X|O|X|O| 
|X|X|X|X|X|X|X|X|X|X| 

O быть островом, где Х пустое пространство/воздух

Имея возможность добавить еще один «остров», из которого необходима спираль, поэтому он не создает того, где кто-то еще есть. Я бы предположил, что это будет сохранено в виде координат.

ответ

0

Вы можете построить простую спиральную дорожку из форм «L».

Выберите центральную точку, размер промежутка между линиями и насколько велика конечная спираль.

Start in the center. 
Set L := size of gap + 1 
Set N := L 
While N < final size 
    Go forward N steps dropping blocks as you go 
    Turn left 90 degrees 
    Go forward N steps dropping blocks as you go 
    Turn left 90 degrees 
    Increase N by L 

Создание круглой спирали сложнее: Algorithm to solve the points of a evenly-distributed/even-gaps spiral?

0

Вы всегда можете использовать оператор модуля. Это что-то вроде:

BlockPos pos = ... //whatever the position is 
if (pos.getX() % 100 == 0 && pos.getY() % 100 == 0 && pos.getZ() % 100 == 0){ 
    // create a block 
} 

Оператор модуль, %, есть остаток, когда вы делите.

+0

Да, но я не хочу прямую линию из них. –

+0

Тогда почему вы спросили, как создать прямую линию из них и нарисовать искусство ascii того, как создать прямую линию из них ...? –

+2

Я этого не сделал, я знаю, что рисунок ужасен, и я ясно сказал «спираль» в теме и во всем. –

Смежные вопросы