Nejlepší odpověď
Pro 2D plošinovky (ze strany na stranu) nejjednodušší způsob, jak přemýšlet, jak to by přimělo hráče transformovat se a mít flip Sprite Renderer tímto způsobem a také Translate speed flip tímto způsobem. Ve plošinovce pro nepřítele opravdu neexistuje cesta. Příkladem může být něco jako:
[SerializeField] Transform player;
[SerializeField] SpriteRenderer rend;
[SerializeField] float speed;
void Update()
{
if(player.pos.x < transform.position.x)
{
renderer.flipX = true;
transform.Translate(new Vector2(-speed, 0f));
}
else
{
renderer.flipX = false;
transform.Translate(new Vector2(speed, 0f));
}
Odpověď
Jedním z projektů, na kterých jsem pracoval, když jsem měl čas (= mezi zakázkami: d), byl velmi klasický, old-school low level 2d sprite-based herní engine, vhodný pro plošinovky a podobně. Jen proto.
Je to vlastně docela zábavná věc, kterou napsat, vlastní 2d engine, je dost malý na to, abyste ho zvládli pracovat sami během několika měsíců rathe Za více než roky, takže to není jako velký 3D engine, kde je to koláč na obloze, kde s ním nikdy nebudete dělat hru. Je stále docela rozumné, i když trochu anachronické, zavádět svůj vlastní 2d engine.
Většinou můj herní engine (napsaný v C ++, nad obyčejným Win32) sestával z: - grafické třídy (nízkoúrovňové plátno) kde můžete kreslit čáry, polygony nebo surové pixely) - třída sprite, pro kreslení animací a skřítků kombinováním kousků z obrázku, stejně jako kreslení bitmapového textu - třída dlaždic, pro správu pozadí dlaždic - hierarchie tříd uživatelského rozhraní s jednoduchými komponentami ( tlačítka, panely, seznam, atd.) - jednoduchý fyzikální engine (nic fantastického, jen něco, co vám umožňuje pohybovat objekty s určitou rychlostí a spouštět kolize s jinými objekty a scenérií) - jednoduchá zvuková třída - hlavní hra stavový automat smyčky / hry, který to všechno spojil, rozesílal zprávy myší a klávesnicí, odesílal události objektům uživatelského rozhraní, vykreslil všechny skřítky, aktualizoval všechny fyzikální objekty atd., je to v podstatě „srdce“ hra. Pokud chcete pochopit, jak fungují základní hry (a implicitně herní enginy), zaměřte se na tuto oblast, správu stavu hry, herních událostí a hlavní smyčku aktualizace / losování. - platformově závislý výkresový kód Win32 v malém souboru.
Také jsem k nim napsal několik převaděčů souborů, editor dlaždic a editor animací pomocí .NET / C ++ / CLI. Opravdu většina práce spočívala v psaní kurzů sprite a fyziky a také editoru sprite.