From 9588ef54acd3368e3eca439d63b2310bd6a103da Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Sun, 14 Feb 2021 17:40:25 +0000 Subject: [PATCH] Projectile aiming --- !TheEscape/!RunImage,ffb | Bin 22272 -> 22754 bytes !TheEscape/!RunImage,ffb.bas | 14 +++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/!TheEscape/!RunImage,ffb b/!TheEscape/!RunImage,ffb index bf1dc608ea8e5b2d6d66a65acff15a0d2408aae0..3e87664aa73fc0f94ed07e92f986b6c0daa9f8ec 100644 GIT binary patch delta 4920 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 Zy8?baMOB delta 4671 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 U^VU7EuRox)KCh^oW+C7I4+r5l-v9sr diff --git a/!TheEscape/!RunImage,ffb.bas b/!TheEscape/!RunImage,ffb.bas index 3963029..1784fbd 100644 --- a/!TheEscape/!RunImage,ffb.bas +++ b/!TheEscape/!RunImage,ffb.bas @@ -270,6 +270,18 @@ DEF PROCspawn_projectile(Projectile%,Px%,Py%,Vx%,Vy%,Sprite$,Damage%) NEXT P% ENDIF + REM If no velocity X specified we're targetting the player + REM This actually has some inaccuracy in due to integers, so no need + REM to try and do that.. It's a feature! + IF Vx = 0 THEN + Velocity% = Vy% + Xdistance% = PlayerLocation%(X) - Px% + Ydistance% = Py% - PlayerLocation%(Y) + distance% = SQR((Xdistance%^2) + (Ydistance%^2)) + Vx% = Xdistance% / (distance% / 10 * Velocity%) + Vy% = Ydistance% / (distance% / 10 * Velocity%) + ENDIF + REM If no free IDs then we go without IF Projectile% >= 0 THEN ProjectileLocations%(Projectile%,X) = Px% @@ -616,7 +628,7 @@ DEF PROCinputs RightFiring% = 1 ENDIF IF INKEY(-34) THEN - PROCspawn_projectile(-1,SCREENGFXWIDTH%/2,SCREENGFXHEIGHT%/2,1,1,"photon",50) + PROCspawn_projectile(-1,SCREENGFXWIDTH%/2,SCREENGFXHEIGHT%/2,0,2,"photon",50) ENDIF IF INKEY(-17) THEN