Екцитебике је игра са бочним померањем у којој се крећете мотором преко скокова, маневрирате око препрека и убрзавате према циљној линији.

Нинтендо је први лансирао ову БМКС тркачку игру за НЕС. Одатле је компанија модернизовала Екцитебике и објавила га на Н64 и, на крају, на Вии.

Више не постоји много НЕС конзола, што поново чини играње Екцитебике-а тешко доступним. Захваљујући неким ретро обожаватељима у Вирефраме Магазине-у, исечак Питхон кода може поново створити овај НЕС класик за сате забаве на вашем Распберри Пи или кућном рачунару.

Преузимање кода и подешавање

Иако можете да користите нано или вим да бисте уређивали свој Питхон код, желећете да искористите предности потпуно функционалног уређивач текста или ИДЕ.

Мораћете да инсталирате Пигаме Зеро да бисте подржали функције уграђене у овај омаж Екцитебике-у. Пигаме Зеро садржи Питхон модуле на које се креатори игара могу фокусирати без понављања једноставних основа.

Ако немате инсталиран питхон3 на рачунару, можете преузмите најновију верзију директно из Пајтона. Такође ћете желети проверите да ли имате инсталиран ПИП такође.

instagram viewer

Са инсталираном најновијом верзијом Питхон-а и ПИП-а, отворите свој ПоверСхелл или Линук терминал и откуцајте:

пип3 инсталирај пгзеро

На крају, мораћете да преузмете копију Питхон кода из ГитХуб спремишта часописа Вирефраме. Унесите следећу команду у терминал:

гит клон хттпс://github.com/Wireframe-Magazine/Wireframe-66.git

Алтернативно, можете преузмите зип код директно са Вирефраме ГитХуб странице.

Разбијање кода

Да бисте разумели шта код ради, прво покрените игру Екцитебике. Урадите то тако што ћете отићи до изворног кода и затим га покренути помоћу Пигаме Зеро:

цд Вирефраме-66/извор-цоде-екцитебике/
пгзрунекитебике.пи

Затим можете отворити датотеку екитебике.пи помоћу уређивача текста да бисте видели код.

Тхе цртати функција црта позадину док се слика бицикла креће. А "блит" односи се на блок који је нацртан на екрану. Реч, "позадина," односи се на слику у позадини (повезивање слика са блоком позадине је захваљујући увезеним Пигаме Зеро модулима).

дефцртати():
сцреен.блит("позадини", (0, 0))
дравТрацк()
бицикл.драв()
сцреен.драв.тект("ВРЕМЕ КРУГА: "+стр (инт (тиме.тиме() - стартТиме)), (20, 555),цолор=(255,255,255), фонтсизе=50)
сцреен.драв.тект("ПОСЛЕДЊИ КРУГ: "+стр (последњи круг), горе = (780, 555), боја=(255,255,255), величина слова=50)

Такође ћете приметити прорачуне за време круга и последњи круг (ово је представљено бројачем времена на дну екрана). Време проласка стално израчунава разлику између почетног притиска на тастер са стрелицом удесно (време почетка) и тренутног времена.

Последњи круг је сличан прорачун. Уместо времена почетка, време се рачуна од тренутка када мотоцикл прође унапред дефинисану позицију стазе (помиње се као трацкПос < -4800 у коду). Ставке испод под наводницима представљају слику.

Овај код црта блокове слика на екрану у одређеним интервалима и одређеним позицијама на екрану. Достављена слика гомиле је широка само 100 пиксела. Ипак, код, испод, говори рачунару када да нацрта слику тако да изгледа као да постоји симулирана гомила иза мотоцикла док се креће.

Камене слике се приказују на екрану у два дела. Други и трећи ред кода, испод, раде заједно како би симулирали пејзаж на уредан начин.

Када направите резервну копију Питхон кода, покушајте да промените бројеве испод да бисте видели шта се дешава са стенама на екрану!

сцреен.блит("цровд1", ((т*100)+трацкОффсет-100, 0))
сцреен.блит("роцк1", ((т*100)+трацкОффсет-100, 270))
сцреен.блит("роцк1", ((т*100)+трацкОффсет-50, 270))

Да ли желите да замените свој мотоцикл камионом Монстер, четвороточкашем или другим возилом? Можда желите да се тркате са једнорогом до циља?

Све што треба да урадите је да нацртате слику величине 50к50пк (са провидном позадином). Затим ставите ову датотеку (пицтуре.пнг) у 'слике' фолдер (унутар изворни код-екцитебике фасцикла). Желите да направите две слике (једну са мало повећаном висином) да додате мало реализма. Све што треба да урадите је да промените референцу на 'бицикл0' овде:

бицикл = глумац('бике0', центар=(150, 350), сидро=('центар', 'дно'))

Такође обавезно извршите акцију проналажења и замене са именом слике (без екстензије слике).

цхецкБикеРамп() је функција која обавља посао за израчунавање И осе тако да ваш мотор (или камион) иде уз рампу (и добија мало ваздуха ако имате среће). Тхе тастатура.десно и тастатура.лево параметри су дефинисани у ажурирање() функција.

Ови битови кода говоре рачунару да успори или убрза мотор (у зависности од тога који тастер корисник притисне на тастатури). Превод: Што се ваш мотор брже креће, већи је број И осе (или веома велики скок).

Попречно, тхе он_кеи_довн (кључ) функција ће послати ваш мотор у зарон.

ако кључ.име == "ДОВН":
бицикл.правац = 1
бике.ланеИ = лимит(бике.ланеИ + 50, 375, 525)
бицикл.и += бицикл.смер

Тхе муцкЛане параметар ће успорити ваш мотоцикл користећи следећу калкулацију:

муцкЛане = инт((бике.ланеИ-375)/50)+1

Ред 66 кода одређује када да се прикаже 'мразна' слика на екрану. Сада када рачунар зна када ће ваш мотоцикл прећи преко блата, он ће успорити брзину вашег мотоцикла на пола док се крећете преко блата на стази. Промените муцкЛане вредност са /50 на /25 или /75 да видите шта ће се следеће десити.

Тркачи (хеј, Питхон програмери)! Покрените своје моторе!

Чак и ако вам није угодно програмирати овај омаж Екцитебике-у од нуле, овај код је и даље одличан почетник. Ако га прилагодите и схватите визуелни утицај промена, можете много научити. Да ли ћете покушати да додате више функција или АИ тркача у своју игру? Само напред!

Уз мало вежбања у Питхон-у, још једна идеја коју можете испробати је додавање различитих нивоа када прођете циљну линију након 4 или 5 пута. Такође, можда ћете желети да додате награде за прво, друго и треће место. Ако сте на првом месту, додајте и аудио фајл за навијање публике! Постоји толико много могућности.

Када сте задовољни својим Екцитебике побољшањима, зашто се не позабавите прављењем текстуалне авантуристичке игре? Постоји много различитих делова који ће вам осигурати да научите нешто узбудљиво сатима, данима или чак недељама!