Ръководство за начинаещи за командни блокове в Minecraft
Minecraft е един от най-добрите начини за въвеждане на млади и нови хора в кодирането. Командните блокове са лесни за изучаване и използване и Java програмирането е точно зад ъгъла с Minecraft модове и Bukkit плъгини. Също така е и много забавно място за опитни програмисти, в които да се занимават.
Какви са командните блокове и защо трябва да ги използвам?
Командните блокове са компонент redstone, който изпълнява конзолни команди, когато се захранват. Командните конзоли могат да се изпълняват от прозореца за чат, като се придвижват с наклонена черта, '/'. Командите се използват за модифициране на игралния свят по начини, които не са възможни на ръка, а когато се използват правилно в командните блокове, дават на Minecraft свой собствен език за псуедо програмиране. Кодът се състои от две неща: логика и изпълнение, а повечето програмни езици изискват и двете да бъдат написани в текст. Minecraft кодирането се извършва по различен начин; логиката и структурата на програмата се определя от мястото, където са поставени блоковете и от начина, по който те са свързани, което означава, че можете да прелитате над вашия свят и да виждате различните части на вашата програма, изложени по блок.
Добре, така че как да започна?
Това ръководство използва новите командни блокове във версия 1.9. Тя ще работи в 1.8, но може да изисква малко повече опит.
Отворете нов свят на Minecraft (Superflat работи най-добре), уверете се, че сте в режим Creative и натиснете бутона "/". Това е командния прозорец, който е същото като прозореца за чат, с изключение на това, че започва с "/" и всичко, което започва с наклонена черта, е команда. Първата команда, която можете да изпълните е
/ дава @p minecraft: command_block
Нека да развалим това. Командата "/ дава" поставя елементите в инвентаризацията на играчите и има два аргумента: играча и елемента, който да даде. "@P" е a целта селектор. Селекторът “@p” избира най-близкия плейър. Като алтернатива можете да използвате и вашето Minecraft потребителско име, но ако изпълните команда от конзолата, винаги ще бъдете най-близкият играч. Другите целеви селектори са „@a“ за всички играчи, „@r“ за случаен играч и „@e“ ще бъдат насочени към всички образувания. Субекти включват всичко, което не е блок, като чудовища, снежни топки, животни и стрели.
Командата трябва да се изпълни успешно и да ви даде нов блок. Поставете го навсякъде на земята, за да започнете.
Можете да видите, че командният блок сочи в посоката, в която го поставяте, като бункерите или пещите. Това ще бъде важно по-късно.
Кликнете с десния бутон върху блока (или използвайте какъвто и ключ да използвате за достъп до занаятчийски маси и пещи) и ще бъдете посрещнати с GUI с команден блок.
В началото изглежда малко страшно, но не се притеснявайте, всички тези бутони правят нещо. Бутонът “Импулс” променя типа на командния блок. Има три различни типа командни блокове:
- Импулс, който изпълнява команди на нарастващ ръб на редстоун. Това означава, че когато се захранват, те ще изпълняват командата си веднъж и ще спрат, дори ако продължат да бъдат захранвани. Това е настройката по подразбиране и е единствената налична в 1.8
- Повторете, които изпълняват команди отметка те се захранват. Отметката е като рамка и множество команди могат да се изпълняват с един тик, до 20 пъти в секунда.
- Верига, която се изпълнява само ако командният блок, който сочи към него, е изпълнил командата си. Те ще се изпълняват последователно, едно след друго, с едно кърлежи, оттук и името „Верига“..
Бутонът, в който пише “Unconditional”, спира командния блок от проверка дали предишният блок във веригата е изпълнил успешно. Другата опция, „Условно“, се изпълнява само ако предишният блок не изхвърля грешки.
Бутонът, на който пише "Нуждае се от Redstone", изпълнява командата само ако командния блок е захранван. Другата опция “Always Active” спира командния блок от проверка дали се захранва и само предполага, че е. Тази опция не трябва да се използва с блоковете за импулсни команди, тъй като това ги прави безполезни.
Нека направим верига, първия ни „скрипт“. Поставете надолу верижен команден блок или два, обърнати в първия команден блок за импулси, като този:
Уверете се, че сте поставили верижните блокове на „Винаги активен“. В противен случай ще трябва да поставим блокове или токове, които заемат ненужно пространство. Поставете бутон върху командния блок за импулси в началото на веригата и го натиснете.
Нищо няма да се случи. Това е, защото още не сме ги изпълнили с команди! Кликнете с десния бутон върху импулсния блок, за да го редактирате и въведете основна команда
казвам, започнете
Забележете как не се нуждаем от наклонена черта в блоковете с команди. Ако искате, можете да го използвате, но това не е необходимо. Командата “/ say” приема един аргумент, текст и го казва от гледна точка на всеки, който го изпълнява. Ако я стартирате, тя ще се покаже като „съобщение“ точно като обикновения чат. Ако е стартиран от команден блок, той ще бъде "[@] съобщение". Алтернативно, има "/ tell", който взема аргумент на играч и "/ tellraw", който е като "/ tell", освен ако не се използва суров JSON вместо текст.
Можете да попълните блоковете на командните вериги, за да напишете повече неща за чат. Те ще бъдат изпълнени в ред, без забавяне, в същото кърлежи. Ако искате да ги изпълните със закъснение, ще трябва да ги настроите с повторители redstone. Заедно с „/ say“ има и други основни команди, които правят повече неща, като „/ give“, което дава елементи, „/ effect“, които прилагат ефекти от отварата, „/ setblock“ и „/ fill“, които променят вашия свят , и много други. Голяма база от команди може да бъде намерена в Minecraft Wiki, заедно с друго полезно съдържание.
Целеви селектори
Целевите селектори на "@p" всъщност са много по-мощни, отколкото изглеждат на пръв поглед. Например, ако искаме да насочим всички обекти, ще използваме „@e“, но ако искаме да се насочим само към зомбита, ще използваме
@e [тип = зомби]
Обърнете внимание на скобите след „@e“. Вътре в тези скоби има аргументи за избор на целеви елемент, пълен списък на които можете да намерите в Minecraft Wiki. Аргументът "type" избира само обекти от определен тип, като това е "Zombie". Ако искаме да насочим всички зомбита в рамките на 10 блока от командния блок, ще използваме
@e [тип = зомби, R = 10]
С “r” е аргумент за радиус. Можете също така да се насочите по местоположение, име, екип и резултат, наред с други.
Команди за вериги
Да въведем друга команда, която не е като другите. Командата е "/ execute". Тази команда взема друга команда като входна информация и я изпълнява от гледна точка на друг обект. Структурата на "/ изпълни" е
/ execute @target X Y Z / команда
X, Y и Z са координати за изпълнение на командата от. Това не е от значение за повечето команди, но има значение, ако използвате относително позициониране. Относителната позиция започва с "~" и е последвана от положително или отрицателно число, което показва колко блока от началния, което е означено с "~ ~ ~". Така например, ако искаме да изпълним „/ say“, както ако селянинът говори, можем да настроим командата по следния начин:
/ execute @e [тип = селянин] ~ ~ ~ / say Хей
Тази команда ще доведе до излизане на съобщение до всеки, от всеки селянин. Това не е оптимално, ако имаме повече от един човек или повече от един селянин, така че нека преформатираме тази команда:
/ execute @a ~ ~ ~ / execute @e [тип = селянин, c = 1] ~ ~ ~ / кажи @p Хей
Това е много по-сложно от първото и включва свързването на две команди "/ execute". Първият "/ изпълни" от командата се изпълнява на всеки играч, след това вторият проверява за точно един селянин наблизо, и след това той селянинът казва на най-близкия играч "Хей". Това гарантира, че само един селянин говори на човек.
Изучаване на синтаксиса
Със сигурност има много команди в Minecraft, всеки от които има свой собствен синтаксис. Помощните менюта за всяка команда обикновено ще ви кажат бързо какви аргументи са нужни на командата, а Minecraft Wiki има подробен списък на това, което прави всеки от тях. Не е толкова за да знаете точно какво прави всяка команда, но знаете как да ги използвате заедно. Minecraft е игра, в края на краищата, така че играта с командите е част от учебния процес.