Pohyb po přímce
Bod A je
počáteční bod, na kterém se objekt nachází. Bod B je místem, kam má
objekt dojít. Objekt jsem pojmenoval hero (tento obrázek jsem původně
maloval pro přesunutí hrdiny v adventuře na bod označený kliknutím myši).
To, čeho chceme docílit je, aby jsme získali vertikální a horizontální
rychlost. Čili kolik pixelů máme přičíst k hero.x a kolik k hero.y
každých několik set milisekund, aby objekt po chvíli došel na správné
místo. K tomu se nám krásně nabízí Pythagorova věta. Vypočítáme
přeponu pravoúhlého trojúhelníku (na obrázku strana C) a tu vydělíme
rychlostí v pixelech, kterou chceme, aby se objekt pohyboval (třeba 10). Tím
získáme číslo d, což značí, kolikrát se musí ona horizontální a
vertikální rychlost přičíst k hero.x a hero.y, než se objekt dostane do
bodu B. Pak už není nic jednoduššího, než vydělit stranu a a stranu b
tímto číslem a máme obě rychlosti.
Horizontální rychlost jsem na obrázku označil e a vertikální f. Nyní jen
připočítáváme v cyklu horizontální rychlost k hero.x a vertikální
rychlost k hero.y a kontrolujeme, jestli už nemáme objekt na bodu B
(samozřejmě, že rychlosti jsou reálná čísla a že výsledné souřadnice
nebudou úplně přesné, čili musíme počítat s nějakou tolerancí).