mirror of
https://github.com/stevenhowes/TheEscape.git
synced 2026-05-27 04:01:28 +01:00
Minor speed tweaks. Weapons targetting (debug only)
This commit is contained in:
Binary file not shown.
@@ -20,7 +20,7 @@ DEF PROC_main
|
|||||||
|
|
||||||
DIM PlayerLocation%(1)
|
DIM PlayerLocation%(1)
|
||||||
PlayerLocation%(X) = SCREENGFXWIDTH%/2
|
PlayerLocation%(X) = SCREENGFXWIDTH%/2
|
||||||
PlayerLocation%(Y) = SCREENGFXHEIGHT%/6
|
PlayerLocation%(Y) = SCREENGFXHEIGHT%/30
|
||||||
PlayerVelocity%=0
|
PlayerVelocity%=0
|
||||||
PlayerShields%=100
|
PlayerShields%=100
|
||||||
PlayerStructuralIntegrity%=100
|
PlayerStructuralIntegrity%=100
|
||||||
@@ -28,6 +28,9 @@ DEF PROC_main
|
|||||||
DIM PlayerHitbox%(3)
|
DIM PlayerHitbox%(3)
|
||||||
PlayerHitbox%() = 0,0,60,81
|
PlayerHitbox%() = 0,0,60,81
|
||||||
|
|
||||||
|
LeftID% = -1
|
||||||
|
RightID% = -1
|
||||||
|
|
||||||
DIM EnemyHitbox%(1,3)
|
DIM EnemyHitbox%(1,3)
|
||||||
EnemyHitbox%(0,0) = 0
|
EnemyHitbox%(0,0) = 0
|
||||||
EnemyHitbox%(0,1) = 0
|
EnemyHitbox%(0,1) = 0
|
||||||
@@ -52,12 +55,12 @@ DEF PROC_main
|
|||||||
EnemyLocations%(Enemy%,X) = RND(SCREENGFXWIDTH%)
|
EnemyLocations%(Enemy%,X) = RND(SCREENGFXWIDTH%)
|
||||||
EnemyLocations%(Enemy%,Y) = SCREENGFXHEIGHT% + (RND(SCREENGFXHEIGHT%/2) * (Enemy% + 1))
|
EnemyLocations%(Enemy%,Y) = SCREENGFXHEIGHT% + (RND(SCREENGFXHEIGHT%/2) * (Enemy% + 1))
|
||||||
EnemySprites$(Enemy%) = "durno_ship"
|
EnemySprites$(Enemy%) = "durno_ship"
|
||||||
EnemyVelocity%(Enemy%,X) = RND(6) - 3
|
EnemyVelocity%(Enemy%,X) = 0
|
||||||
EnemyVelocity%(Enemy%,Y) = RND(3) + 3
|
EnemyVelocity%(Enemy%,Y) = RND(3) + 2
|
||||||
EnemyHitboxID%(Enemy%) = RND(2)-1
|
EnemyHitboxID%(Enemy%) = RND(2)-1
|
||||||
IF EnemyHitboxID%(Enemy%) = 1 THEN
|
IF EnemyHitboxID%(Enemy%) = 1 THEN
|
||||||
EnemySprites$(Enemy%) = "durno_ship2"
|
EnemySprites$(Enemy%) = "durno_ship2"
|
||||||
EnemyVelocity%(Enemy%,X) = RND(8) - 4
|
EnemyVelocity%(Enemy%,X) = RND(3) - 2
|
||||||
EnemyVelocity%(Enemy%,Y) = RND(10) + 6
|
EnemyVelocity%(Enemy%,Y) = RND(10) + 6
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -111,6 +114,7 @@ DEF PROC_main
|
|||||||
|
|
||||||
REM Player
|
REM Player
|
||||||
PROCplayer_ship_draw
|
PROCplayer_ship_draw
|
||||||
|
PROCplayer_arc_calculatetarget
|
||||||
|
|
||||||
PROCenemy_ship_draw
|
PROCenemy_ship_draw
|
||||||
|
|
||||||
@@ -260,6 +264,46 @@ DEF PROCplayer_ship_draw
|
|||||||
PROCdraw_sprite(ShipSprite$,PlayerLocation%(0),PlayerLocation%(1))
|
PROCdraw_sprite(ShipSprite$,PlayerLocation%(0),PlayerLocation%(1))
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
REM Calculate player ship's phaser arc
|
||||||
|
DEF PROCplayer_arc_calculatetarget
|
||||||
|
GCOL 0,0
|
||||||
|
NoseX% = PlayerLocation%(X) + PlayerHitbox%(0) + (PlayerHitbox%(2)/2)
|
||||||
|
NoseY% = (PlayerLocation%(Y) + PlayerHitbox%(1) + PlayerHitbox%(3))
|
||||||
|
REM LINE NoseX%, NoseY%, NoseX% + 200,NoseY% + 1000
|
||||||
|
REM LINE NoseX%, NoseY%, NoseX%,NoseY% + 1000
|
||||||
|
REM LINE NoseX%, NoseY%, NoseX% - 200,NoseY% + 1000
|
||||||
|
|
||||||
|
LeftDistance% = 1000
|
||||||
|
LeftID% = -1
|
||||||
|
RightDistance% = 1000
|
||||||
|
RightID% = -1
|
||||||
|
|
||||||
|
FOR Enemy%=0 TO MaxEnemies% - 1
|
||||||
|
LeftCornerX% = EnemyLocations%(Enemy%,X) + EnemyHitbox%(EnemyHitboxID%(Enemy%),X)
|
||||||
|
LeftCornerY% = EnemyLocations%(Enemy%,1) + EnemyHitbox%(EnemyHitboxID%(Enemy%),1)
|
||||||
|
RightCornerX% = LeftCornerX% + EnemyHitbox%(EnemyHitboxID%(Enemy%),2)
|
||||||
|
IF LeftCornerY% > NoseY% THEN
|
||||||
|
DistanceY% = LeftCornerY% - NoseY%
|
||||||
|
DistanceX% = ABS(NoseX% - ((LeftCornerX% + RightCornerX%) / 2))
|
||||||
|
IF (DistanceY%/5) > DistanceX% THEN
|
||||||
|
IF (NoseX% - ((LeftCornerX% + RightCornerX%) / 2)) > 0 THEN
|
||||||
|
IF DistanceY% < LeftDistance% THEN
|
||||||
|
LeftDistance% = DistanceY%
|
||||||
|
LeftID% = Enemy%
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
IF DistanceY% < RightDistance% THEN
|
||||||
|
RightDistance% = DistanceY%
|
||||||
|
RightID% = Enemy%
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
NEXT Enemy%
|
||||||
|
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
REM Input handling
|
REM Input handling
|
||||||
DEF PROCinputs
|
DEF PROCinputs
|
||||||
*FX 4
|
*FX 4
|
||||||
@@ -296,6 +340,8 @@ DEF PROCdebugoutput
|
|||||||
PRINT "X: " + STR$(PlayerLocation%(0)) " Y: " STR$(PlayerLocation%(1))
|
PRINT "X: " + STR$(PlayerLocation%(0)) " Y: " STR$(PlayerLocation%(1))
|
||||||
PRINT "CPF: " + STR$(Cents% - LastCents%)
|
PRINT "CPF: " + STR$(Cents% - LastCents%)
|
||||||
PRINT "Scr: " + STR$(Scr%)
|
PRINT "Scr: " + STR$(Scr%)
|
||||||
|
PRINT "Left: " + STR$(LeftID%)
|
||||||
|
PRINT "Right: " + STR$(RightID%)
|
||||||
|
|
||||||
FOR Enemy%=0 TO MaxEnemies% - 1
|
FOR Enemy%=0 TO MaxEnemies% - 1
|
||||||
PRINT "ENEMY:" STR$(Enemy%) + " " + STR$(EnemyLocations%(Enemy%,X)) + "," + STR$(EnemyLocations%(Enemy%,Y)) + " " + STR$(EnemyVelocity%(Enemy%,X)) + " " + STR$(EnemyVelocity%(Enemy%,Y))
|
PRINT "ENEMY:" STR$(Enemy%) + " " + STR$(EnemyLocations%(Enemy%,X)) + "," + STR$(EnemyLocations%(Enemy%,Y)) + " " + STR$(EnemyVelocity%(Enemy%,X)) + " " + STR$(EnemyVelocity%(Enemy%,Y))
|
||||||
@@ -307,6 +353,14 @@ DEF PROCdebugoutput
|
|||||||
NEXT Enemy%
|
NEXT Enemy%
|
||||||
|
|
||||||
RECT PlayerLocation%(X) + PlayerHitbox%(0), PlayerLocation%(Y) + PlayerHitbox%(1), PlayerHitbox%(2), PlayerHitbox%(3)
|
RECT PlayerLocation%(X) + PlayerHitbox%(0), PlayerLocation%(Y) + PlayerHitbox%(1), PlayerHitbox%(2), PlayerHitbox%(3)
|
||||||
|
|
||||||
|
IF LeftID% >= 0 THEN
|
||||||
|
LINE PlayerLocation%(X), PlayerLocation%(Y), EnemyLocations%(LeftID%,X), EnemyLocations%(LeftID%,Y)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF RightID% >= 0 THEN
|
||||||
|
LINE PlayerLocation%(X), PlayerLocation%(Y), EnemyLocations%(RightID%,X), EnemyLocations%(RightID%,Y)
|
||||||
|
ENDIF
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
REM Delay routine - thanks Sophie
|
REM Delay routine - thanks Sophie
|
||||||
|
|||||||
Reference in New Issue
Block a user