Change debug output. Display enemy health.. Space to fire. Added distance counter.

This commit is contained in:
stevenhowes
2021-02-08 20:55:41 +00:00
parent dbc3945d16
commit 4ca1802917
2 changed files with 73 additions and 10 deletions
Binary file not shown.
+73 -10
View File
@@ -22,6 +22,7 @@ END
DEF PROCtitle DEF PROCtitle
CLS CLS
PROCdraw_sprite("intro_25",320,256) PROCdraw_sprite("intro_25",320,256)
KEY$ = GET$ KEY$ = GET$
@@ -67,9 +68,11 @@ DEF PROCfinal_gfx_setup
ENDPROC ENDPROC
DEF PROCaudio_setup DEF PROCaudio_setup
VOICES 2 SOUND ON
VOICES 4
VOICE 1,"WaveSynth-Beep" VOICE 1,"WaveSynth-Beep"
VOICE 2,"Percussion-Noise" VOICE 2,"Percussion-Noise"
VOICE 3,"StringLib-Hard"
ENDPROC ENDPROC
DEF PROCmain_scene1 DEF PROCmain_scene1
@@ -84,6 +87,7 @@ DEF PROCmain_scene1
PlayerStructuralIntegrity%=100 PlayerStructuralIntegrity%=100
PlayerSprite$ = "player_ship" PlayerSprite$ = "player_ship"
PlayerExplodeNextFrame% = 0 PlayerExplodeNextFrame% = 0
PlayerRemainingDistance% = 1500000
DIM PlayerHitbox%(3) DIM PlayerHitbox%(3)
PlayerHitbox%() = 0,0,60,81 PlayerHitbox%() = 0,0,60,81
DieEnd% = 0 DieEnd% = 0
@@ -92,9 +96,12 @@ DEF PROCmain_scene1
PlayerPhaserOffset%(0,Y) = 75 PlayerPhaserOffset%(0,Y) = 75
PlayerPhaserOffset%(1,X) = 40 PlayerPhaserOffset%(1,X) = 40
PlayerPhaserOffset%(1,Y) = 75 PlayerPhaserOffset%(1,Y) = 75
PlayerPhaserDamagePerSecond% = 2
LeftID% = -1 LeftID% = -1
RightID% = -1 RightID% = -1
LeftFiring% = 0
RightFiring% = 0
DIM EnemyHitbox%(1,3) DIM EnemyHitbox%(1,3)
EnemyHitbox%(0,0) = 0 EnemyHitbox%(0,0) = 0
@@ -137,6 +144,8 @@ DEF PROCmain_scene1
REM Controls REM Controls
PlayerRemainingDistance% = PlayerRemainingDistance% - (Cents% - LastCents%) * PlayerVelocity%
PROCplayer_ship_handle_damage PROCplayer_ship_handle_damage
PROCenemy_ship_handle_damage PROCenemy_ship_handle_damage
PROCenemy_ship_move PROCenemy_ship_move
@@ -149,6 +158,7 @@ DEF PROCmain_scene1
PROCenemy_ship_collide_player PROCenemy_ship_collide_player
REM PROCenemy_ship_collide_npc REM PROCenemy_ship_collide_npc
PROCplayer_arc_calculatetarget PROCplayer_arc_calculatetarget
PROCplayer_weapons_damage
PROCspecks_move PROCspecks_move
ENDIF ENDIF
@@ -169,9 +179,12 @@ DEF PROCmain_scene1
REM Player REM Player
PROCplayer_ship_draw PROCplayer_ship_draw
PROCplayer_target_draw PROCplayer_target_draw
PROCenemy_ship_draw PROCenemy_ship_draw
IF PlayerStructuralIntegrity% > 0 THEN
PROCplayer_weapons_draw
ENDIF
REM UI REM UI
PROChud_draw PROChud_draw
@@ -183,13 +196,48 @@ DEF PROCmain_scene1
ENDPROC ENDPROC
DEF PROCplayer_weapons_damage
IF LeftID% < 0 THEN
LeftFiring% = 0
ENDIF
IF RightID% < 0 THEN
RightFiring% = 0
ENDIF
IF LeftFiring% = 1 THEN
EnemyHealth%(LeftID%) = EnemyHealth%(LeftID%) - ((Cents% - LastCents%) * PlayerPhaserDamagePerSecond%)
ENDIF
IF RightFiring% = 1 THEN
EnemyHealth%(RightID%) = EnemyHealth%(RightID%) - ((Cents% - LastCents%) * PlayerPhaserDamagePerSecond%)
ENDIF
ENDPROC
DEF PROCplayer_weapons_draw
IF LeftID% < 0 THEN
LeftFiring% = 0
ENDIF
IF RightID% < 0 THEN
RightFiring% = 0
ENDIF
IF LeftFiring% = 1 THEN
LINE PlayerLocation%(X) + PlayerPhaserOffset%(0,X), PlayerLocation%(Y) + PlayerPhaserOffset%(0,Y), EnemyLocations%(LeftID%,X) + (EnemyHitbox%(EnemyHitboxID%(LeftID%),2)/2), EnemyLocations%(LeftID%,Y)
ENDIF
IF RightFiring% = 1 THEN
LINE PlayerLocation%(X) + PlayerPhaserOffset%(1,X), PlayerLocation%(Y) + PlayerPhaserOffset%(1,Y), EnemyLocations%(RightID%,X) + (EnemyHitbox%(EnemyHitboxID%(RightID%),2)/2), EnemyLocations%(RightID%,Y)
ENDIF
ENDPROC
DEF PROCplayer_ship_handle_damage DEF PROCplayer_ship_handle_damage
IF PlayerStructuralIntegrity% <= 0 THEN IF PlayerStructuralIntegrity% <= 0 THEN
IF TIME > PlayerExplodeNextFrame% THEN IF TIME > PlayerExplodeNextFrame% THEN
PlayerExplodeNextFrame% = TIME + 4 PlayerExplodeNextFrame% = TIME + 4
IF PlayerSprite$ = "player_ship" THEN IF PlayerSprite$ = "player_ship" THEN
DieEnd% = TIME + 150 DieEnd% = TIME + 150
SOUND 2,-5,0,50 SOUND 2,-5, 20,50
ENDIF ENDIF
CASE PlayerSprite$ OF CASE PlayerSprite$ OF
WHEN "player_ship": PlayerSprite$ = "explode_shp1" WHEN "player_ship": PlayerSprite$ = "explode_shp1"
@@ -210,7 +258,9 @@ ENDPROC
DEF PROCenemy_ship_handle_damage DEF PROCenemy_ship_handle_damage
FOR Enemy%=0 TO MaxEnemies% - 1 FOR Enemy%=0 TO MaxEnemies% - 1
REM Destruction
IF EnemyHealth%(Enemy%) <= 0 THEN IF EnemyHealth%(Enemy%) <= 0 THEN
EnemyCollidable%(Enemy%) = 0
IF EnemySprites$(Enemy%) = "durno_ship2" THEN IF EnemySprites$(Enemy%) = "durno_ship2" THEN
SOUND 2,-5,0,50 SOUND 2,-5,0,50
ENDIF ENDIF
@@ -226,6 +276,7 @@ DEF PROCenemy_ship_handle_damage
ENDCASE ENDCASE
ENDIF ENDIF
ENDIF ENDIF
NEXT Enemy% NEXT Enemy%
ENDPROC ENDPROC
@@ -236,14 +287,14 @@ DEF PROCrespawn_enemy(Enemy%)
EnemyVelocity%(Enemy%,X) = 0 EnemyVelocity%(Enemy%,X) = 0
EnemyVelocity%(Enemy%,Y) = RND(3) + 2 EnemyVelocity%(Enemy%,Y) = RND(3) + 2
EnemyHitboxID%(Enemy%) = RND(2)-1 EnemyHitboxID%(Enemy%) = RND(2)-1
EnemyHealth%(Enemy%) = 100 EnemyHealth%(Enemy%) = 1000
EnemyCollidable%(Enemy%) = 1 EnemyCollidable%(Enemy%) = 1
EnemyCollideForce%(Enemy%) = 1000 EnemyCollideForce%(Enemy%) = 1000
EnemyExplodeNextFrame% = 0 EnemyExplodeNextFrame% = 0
IF EnemyHitboxID%(Enemy%) = 1 THEN IF EnemyHitboxID%(Enemy%) = 1 THEN
EnemySprites$(Enemy%) = "durno_ship2" EnemySprites$(Enemy%) = "durno_ship2"
EnemyVelocity%(Enemy%,X) = RND(3) - 2 EnemyVelocity%(Enemy%,X) = RND(3) - 2
EnemyVelocity%(Enemy%,Y) = RND(10) + 6 EnemyVelocity%(Enemy%,Y) = RND(2) + 6
EnemyHealth%(Enemy%) = 30 EnemyHealth%(Enemy%) = 30
EnemyCollideForce%(Enemy%) = 30 EnemyCollideForce%(Enemy%) = 30
ENDIF ENDIF
@@ -294,6 +345,8 @@ DEF PROChud_draw
PRINT "Integrity" PRINT "Integrity"
MOVE 75,SCREENGFXHEIGHT%-110 MOVE 75,SCREENGFXHEIGHT%-110
PRINT "Velocity" PRINT "Velocity"
MOVE 75,SCREENGFXHEIGHT%-140
PRINT "Distance"
REM Attribute values REM Attribute values
GCOL 0,7 GCOL 0,7
@@ -303,6 +356,8 @@ DEF PROChud_draw
PRINT PlayerStructuralIntegrity% PRINT PlayerStructuralIntegrity%
MOVE 130,SCREENGFXHEIGHT%-110 MOVE 130,SCREENGFXHEIGHT%-110
PRINT PlayerVelocity% PRINT PlayerVelocity%
MOVE 130,SCREENGFXHEIGHT%-140
PRINT PlayerRemainingDistance% DIV 1000
ENDPROC ENDPROC
DEF PROCenemy_ship_collide_npc DEF PROCenemy_ship_collide_npc
@@ -351,7 +406,7 @@ DEF PROCenemy_ship_collide_player
MOVE x1+w1,y1+h1 MOVE x1+w1,y1+h1
IF EnemyCollidable%(Enemy%) = 1 THEN IF EnemyCollidable%(Enemy%) = 1 THEN
PlayerVelocity% = PlayerVelocity% / 2 PlayerVelocity% = PlayerVelocity% / 2
EnemyHealth%(Enemy%) = EnemyHealth%(Enemy%) - 30 EnemyHealth%(Enemy%) = EnemyHealth%(Enemy%) - 300
PlayerStructuralIntegrity% = PlayerStructuralIntegrity% - EnemyCollideForce%(Enemy%) PlayerStructuralIntegrity% = PlayerStructuralIntegrity% - EnemyCollideForce%(Enemy%)
EnemyCollidable%(Enemy%) = 0 EnemyCollidable%(Enemy%) = 0
EnemyVelocity%(Enemy%,Y) = EnemyVelocity%(Enemy%,Y) / 2 EnemyVelocity%(Enemy%,Y) = EnemyVelocity%(Enemy%,Y) / 2
@@ -456,6 +511,10 @@ DEF PROCinputs
PlayerVelocity% = 0 PlayerVelocity% = 0
ENDIF ENDIF
ENDIF ENDIF
IF INKEY(-99) THEN
LeftFiring% = 1
RightFiring% = 1
ENDIF
IF INKEY(-17) THEN IF INKEY(-17) THEN
IF DebugOut% = 0 THEN DebugOut% = 1 IF DebugOut% = 0 THEN DebugOut% = 1
ENDIF ENDIF
@@ -468,6 +527,8 @@ DEF PROCplayer_target_draw
RECT EnemyLocations%(LeftID%,X) + EnemyHitbox%(EnemyHitboxID%(LeftID%),X) - 10, EnemyLocations%(LeftID%,1) + EnemyHitbox%(EnemyHitboxID%(LeftID%),1) - 10, EnemyHitbox%(EnemyHitboxID%(LeftID%),2) + 20, EnemyHitbox%(EnemyHitboxID%(LeftID%),3) + 20 RECT EnemyLocations%(LeftID%,X) + EnemyHitbox%(EnemyHitboxID%(LeftID%),X) - 10, EnemyLocations%(LeftID%,1) + EnemyHitbox%(EnemyHitboxID%(LeftID%),1) - 10, EnemyHitbox%(EnemyHitboxID%(LeftID%),2) + 20, EnemyHitbox%(EnemyHitboxID%(LeftID%),3) + 20
RECT EnemyLocations%(LeftID%,X) + EnemyHitbox%(EnemyHitboxID%(LeftID%),X) - 8, EnemyLocations%(LeftID%,1) + EnemyHitbox%(EnemyHitboxID%(LeftID%),1) - 8, EnemyHitbox%(EnemyHitboxID%(LeftID%),2) + 16, EnemyHitbox%(EnemyHitboxID%(LeftID%),3) + 16 RECT EnemyLocations%(LeftID%,X) + EnemyHitbox%(EnemyHitboxID%(LeftID%),X) - 8, EnemyLocations%(LeftID%,1) + EnemyHitbox%(EnemyHitboxID%(LeftID%),1) - 8, EnemyHitbox%(EnemyHitboxID%(LeftID%),2) + 16, EnemyHitbox%(EnemyHitboxID%(LeftID%),3) + 16
MOVE EnemyLocations%(LeftID%,X), EnemyLocations%(LeftID%,Y) - 20
PRINT STR$(EnemyHealth%(LeftID%))
ENDIF ENDIF
IF RightID% >= 0 THEN IF RightID% >= 0 THEN
@@ -476,6 +537,8 @@ DEF PROCplayer_target_draw
RECT EnemyLocations%(RightID%,X) + EnemyHitbox%(EnemyHitboxID%(RightID%),X) -10, EnemyLocations%(RightID%,1) + EnemyHitbox%(EnemyHitboxID%(RightID%),1) -10, EnemyHitbox%(EnemyHitboxID%(RightID%),2) +20, EnemyHitbox%(EnemyHitboxID%(RightID%),3) +20 RECT EnemyLocations%(RightID%,X) + EnemyHitbox%(EnemyHitboxID%(RightID%),X) -10, EnemyLocations%(RightID%,1) + EnemyHitbox%(EnemyHitboxID%(RightID%),1) -10, EnemyHitbox%(EnemyHitboxID%(RightID%),2) +20, EnemyHitbox%(EnemyHitboxID%(RightID%),3) +20
RECT EnemyLocations%(RightID%,X) + EnemyHitbox%(EnemyHitboxID%(RightID%),X) -8, EnemyLocations%(RightID%,1) + EnemyHitbox%(EnemyHitboxID%(RightID%),1) -8, EnemyHitbox%(EnemyHitboxID%(RightID%),2) +16, EnemyHitbox%(EnemyHitboxID%(RightID%),3) +16 RECT EnemyLocations%(RightID%,X) + EnemyHitbox%(EnemyHitboxID%(RightID%),X) -8, EnemyLocations%(RightID%,1) + EnemyHitbox%(EnemyHitboxID%(RightID%),1) -8, EnemyHitbox%(EnemyHitboxID%(RightID%),2) +16, EnemyHitbox%(EnemyHitboxID%(RightID%),3) +16
MOVE EnemyLocations%(RightID%,X), EnemyLocations%(RightID%,Y) - 20
PRINT STR$(EnemyHealth%(RightID%))
ENDIF ENDIF
ENDPROC ENDPROC
@@ -492,12 +555,12 @@ 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 "Left: " + STR$(LeftID%) + " - " + STR$(LeftFiring%)
PRINT "Right: " + STR$(RightID%) PRINT "Right: " + STR$(RightID%) + " - " + STR$(RightFiring%)
FOR Enemy%=0 TO MaxEnemies% - 1 FOR Enemy%=0 TO MaxEnemies% - 1
PRINT "NPC:" STR$(Enemy%) + " " + FNpad(STR$(EnemyLocations%(Enemy%,X)),4) + " " + FNpad(STR$(EnemyLocations%(Enemy%,Y)),4) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,X)),3) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,Y)),3) PRINT "NPC:" STR$(Enemy%) + ": " + FNpad(STR$(EnemyLocations%(Enemy%,X)),4) + "," + FNpad(STR$(EnemyLocations%(Enemy%,Y)),4) + " V: " + FNpad(STR$(EnemyVelocity%(Enemy%,X)),2) + "," + FNpad(STR$(EnemyVelocity%(Enemy%,Y)),2)
PRINT FNpad(STR$(EnemyHealth%(Enemy%)),3) + " " + EnemySprites$(Enemy%) + " " + STR$(EnemyExplodeNextFrame%) PRINT "H: " + FNpad(STR$(EnemyHealth%(Enemy%)),3)
NEXT Enemy% NEXT Enemy%