PixelTread
Pracovní postupy

Pracovní postup projektu GMS2: od otevření složky po testování

03
Scénář

Projekt, kde se třese kamera

Mnoho lidí stále píše GMS2, když myslí dnešní GameMaker. Představte si, že se váš hráč pohybuje tam a zpět a kamera se třese, protože pozice obsahuje desetinná čísla. Otevřete složku projektu, popište příznak ve větě a nechte PixelTread najít kód. Agent mapuje složku pomocí list_dir a glob, čte skripty pohybu a kamery pomocí read_file a navrhuje malou změnu jako diff. Nic se nezmění, dokud se nerozhodnete, takže první relace je také bezpečnou cestou, jak se naučit, co každý nástroj dělá. Stejná smyčka funguje pro většinu malých chyb: popište, čtěte, kontrolujte, testujte. Každá iterace končí v editoru, kde stisknete Start a výsledek uvidíte sami. Pokud první oprava nestačí, popište, co se změnilo, a další karta navazuje na tu předchozí. Projekt mějte v editoru otevřený, zatímco pracujete.

01

Otevřete složku

Vyberte složku projektu GameMaker jako pracovní složku chatu, aby nástroje pro soubory viděly vaše skripty a textové soubory projektu. Pro každou chybu začněte nový chat, což udržuje každou konverzaci o jednom problému a jednom diffu. Pracovní složka je hranicí pro nástroje pro soubory, takže ji nasměrujte na projekt a nic jiného. Všechno mimo tuto složku není nástroji pro soubory pokryto.

02

Popište problém

Napište, co vidíte a kde, například že se kamera třese, když se hráč otáčí, a zmíněte skript, pokud ho znáte. Konkrétní příznak dává agentovi něco, co může hledat pomocí grep. Přidejte, co jste již zkusili, protože to agenta udrží od opakování. Krátké věty fungují dobře.

03

Zkontrolujte diff

Přečtěte si každou kartu, otevřete diff a přijměte pouze řádky, kterým rozumíte. Ostatní odmítněte a vysvětlete proč, a agent se pokusí znovu. Režim Ask first se před každou akcí, která mění soubor, pozastaví, takže se nic neuloží bez vašeho vědomí. Otevřete rozbalenou kartu, abyste viděli celý diff, ne pouze řádek shrnutí.

04

Sestavte a otestujte

Spusťte sestavení v editoru GameMaker, přehrajte místnost a vraťte se s tím, co jste viděli, aby další krok začal od faktů. Pokud sestavení selže, vložte protokol do souboru ve složce a nechte agenta, aby ho přečetl. Poté si do chatu zapište výsledek, aby další požadavek měl jasný výchozí bod. Spusťte stejný test po každé přijaté změně ve stejné místnosti.

Malý skript pohybu

scr_move.gml
// Move an object with the arrow keys
function scr_move(_speed) {
    var _r = keyboard_check(vk_right);
    var _l = keyboard_check(vk_left);
    var _d = keyboard_check(vk_down);
    var _u = keyboard_check(vk_up);
    x += (_r - _l) * _speed;
    y += (_d - _u) * _speed;
    // keep the position on whole pixels
    x = round(x);
    y = round(y);
}

Funkce čte šipky pomocí keyboard_check, pohybuje x a y o hodnotu rychlosti a zaokrouhluje obě, aby se sprite kreslil na celých pixelech. Zaokrouhlení je opravou výše popsaného třesení. Skript jako tento je přesně to, co agent může otevřít, změnit a ukázat jako diff, a vy ho můžete otestovat v místnosti do minuty. Nejprve ho uložte jako asset skriptu a měňte jeden řádek najednou. Požádejte agenta, aby nad každou změnou přidal komentář, abyste ji mohli později najít. Místní názvy jako _speed je snadné přejmenovat.

Čtyři úkoly pro projekty zahájené v GameMaker Studio 2

Učte se změnou vlastních skriptů

Lidé se často ptají, jak se naučit programování v GameMakeru, a dobrou odpovědí je měnit skutečné skripty a sledovat, co se stane. Otevřete malý projekt a požádejte agenta, aby vysvětlil jeden řádek skriptu po řádcích. Přečte soubor pomocí read_file a cituje názvy funkcí z oficiální manuály pomocí web_search. Poté požádejte o jednu malou změnu, například rychlejší rychlost chůze. Přečtěte si diff v režimu Ask first, přijměte ho, sestavte a hrajte. Opakujte s novou změnou každý den a nechte agenta napsat soubor s poznámkami pomocí write_file, abyste si mohli vzpomenout, co vás každá úprava naučila. Pomalý postup je stále postupem.

Nakreslete sprite s průhlednou částí

Možná budete chtít učinit pouze část sprite průhlednou, například spodní polovinu postavy stojící ve vodě. Agent přečte váš kreslicí skript pomocí read_file, vyhledá aktuální volbu kreslení pomocí grep a navrhne změny edit_file, které kreslí sprite ve dvou částech pomocí draw_sprite_part_ext, z nichž jedna má nižší hodnotu alfa. Režim Plan only vám nejprve ukáže 2 části. Krátké a otestovatelné. Přijměte diff, spusťte místnost a zkontrolujte spáru mezi oběma částmi na úrovni pixelů, protože mezera o jeden pixel je v pohybu snadno viditelná. Pokud se hladina vody pohybuje, požádejte agenta, aby spojil rozdělení s proměnnou.

Zastavte pohyb před zdí

Aby se pohyb zastavil před srážkou s objektem, měl by skript otestovat další pozici a teprve poté se pohybovat. Požádejte agenta, aby přečetl váš skript pohybu a zabalil každý krok do kontroly place_meeting na cílové pozici. Karta edit_file ukazuje nové řádky a Shell hlásí návratový kód příkazu sestavení. Jděte do zdi v místnosti. Nejprve zkontrolujte diff, poté testujte při pomalé a rychlé rychlosti, protože rychlý objekt může stále přeskočit tenkou zeď, a požádejte o menší krok, pokud se tak stane. Místnost pro testování udržujte malou, se zdí a jedním hráčem.

Najděte první chybu v protokolu sestavení

Dlouhý protokol sestavení skrývá řádek, který má význam. Uložte protokol jako textový soubor ve složce projektu, poté požádejte agenta, aby ho otevřel pomocí read_file a vyhledal v něm slovo error pomocí grep. Nahlásí první chybu spolu s názvem skriptu a řádkem a může přečíst tento skript a navrhnout opravu pomocí edit_file. Oprava první chyby často odstraní ty následující. Přijměte diff v režimu Ask first, znovu sestavte a porovnejte nový protokol se starým, abyste viděli, zda počet chyb klesl. Opakujte, dokud není protokol čistý.

PixelTread pro Windows

Spusťte tento pracovní postup na vlastním projektu

Stáhnout PixelTread ↗