これをさらに解説してくれ

*GENERATE;dx,dy,u は一時変数です。
dx=tx-mx : dy=ty-my
txv=dx : tyv=dy

if dx<0 : dx=0-dx
if dy<0 : dy=0-dy
du=dx : if du<dy : du=dy
if du=0 : return

txv=txv*tv/du
tyv=tyv*tv/du
return
解説。

まず座標差を求めます。(dx,dy)
絶対値を比較して大きいほうをとります。(du)
座標差に弾の速度を掛けて、それを du で割ります。