From 300c6a2009d6209796aecc2912b8520dda90c086 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Sat, 30 Jan 2021 21:35:23 +0000 Subject: [PATCH] Tidy up, variables with proper names --- !TheEscape/!RunImage,ffb | Bin 1933 -> 2836 bytes !TheEscape/!RunImage,ffb.bas | 140 +++++++++++++++++++++-------------- !TheEscape/!Sprites22,ff9 | Bin 1892 -> 1892 bytes 3 files changed, 86 insertions(+), 54 deletions(-) diff --git a/!TheEscape/!RunImage,ffb b/!TheEscape/!RunImage,ffb index 8a15151a39f02cd4c0f587aa417d705aed8a5ee0..8afed5f9a450a84201add77f42a4bde2bf880a21 100644 GIT binary patch literal 2836 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 K;oa@0zy1a*KL11j diff --git a/!TheEscape/!RunImage,ffb.bas b/!TheEscape/!RunImage,ffb.bas index 6699e3b..23b79c6 100644 --- a/!TheEscape/!RunImage,ffb.bas +++ b/!TheEscape/!RunImage,ffb.bas @@ -4,22 +4,23 @@ END DEF PROC_main REM Current graphics buffer - DIM SCR 0 + DIM Scr% 0 - REM Player location - LOCATIONX=0 - LOCATIONY=0 + DIM PlayerLocation%(1) + PlayerLocation%(0) = 800 + PlayerLocation%(1) = 100 + PlayerVelocity%=0 + PlayerShields%=100 + PlayerStructuralIntegrity%=100 + XMovePerCent%=5 - REM Player ship attributes - VELOCITY=0 - SHIELDS=100 - STRUCTURALINTEGRITY=100 - XPERCENT=5 + REM Show/hide debug display + DebugOut%=0 REM Used for centiseconds per frame calcs - CENTS = TIME + Cents% = TIME - REM 800x600 GFX Area 1600x1200 + REM 800x600x256 GFX Area 1600x1200 MODE 32 REM Sprite set @@ -27,69 +28,100 @@ DEF PROC_main REPEAT REM Store current time and last time - LASTCENTS = CENTS - CENTS = TIME + LastCents% = Cents% + Cents% = TIME - REM Set grpahics buffer - SYS "OS_Byte",112,SCR - - KEY = INKEY(0) - - IF KEY = 100 THEN - LOCATIONX = LOCATIONX + (XPERCENT * (CENTS - LASTCENTS)) - ENDIF - IF KEY = 97 THEN - LOCATIONX = LOCATIONX - (XPERCENT * (CENTS - LASTCENTS)) - ENDIF - - CLS - - SYS "OS_SpriteOp",34+256,sprite_area%,"lcars",0,940,0 + REM Set grpahics buffer to one that's not in use + SYS "OS_Byte",112,Scr% -REM PRINT "X: " + STR$(LOCATIONX) -REM IF KEY <> -1 THEN -REM PRINT "Key: " + STR$(KEY) -REM ELSE -REM PRINT "Key:" -REM ENDIF -REM PRINT "CPF: " + STR$(CENTS - LASTCENTS) + CLS - SYS "OS_SpriteOp",34+256,sprite_area%,"player_ship",LOCATIONX,0,0 + REM Draw LCARS in top left + PROCdraw_sprite("lcars",0,940) - VDU 5 + IF DebugOut% = 1 THEN + PROCdebugoutput + ENDIF - GCOL 0,0 - MOVE 75,1150 - PRINT "Sheilds" - MOVE 75,1120 - PRINT "Integrity" - MOVE 75,1090 - PRINT "Velocity" + REM Handle Key inputs + PROCinputs - GCOL 0,7 - MOVE 130,1150 - PRINT SHIELDS - MOVE 130,1120 - PRINT STRUCTURALINTEGRITY - MOVE 130,1090 - PRINT VELOCITY + REM Use graphics cursor for text (TODO: Is this needed in loop?_) + VDU 5 - WAIT + GCOL 0,0 + MOVE 75,1150 + PRINT "Sheilds" + MOVE 75,1120 + PRINT "Integrity" + MOVE 75,1090 + PRINT "Velocity" - SYS "OS_Byte",113,SCR + GCOL 0,7 + MOVE 130,1150 + PRINT PlayerShields% + MOVE 130,1120 + PRINT PlayerStructuralIntegrity% + MOVE 130,1090 + PRINT PlayerVelocity% - IF SCR=0 THEN SCR=1 ELSE SCR=0 + REM Draw player ship + PROCdraw_sprite("player_ship",PlayerLocation%(0),PlayerLocation%(1)) + + REM Wait for rendering to complete + WAIT + + REM Display edited buffer + SYS "OS_Byte",113,Scr% + + REM Switch draw buffer + IF Scr%=0 THEN Scr%=1 ELSE Scr%=0 UNTIL FALSE ENDPROC +REM Input handling +DEF PROCinputs + REM TODO: Scan individual keys so we can handle specials (e.g. arrows) + KEY = INKEY(0) + + IF KEY = 100 THEN + PlayerLocation%(0) = PlayerLocation%(0) + (XMovePerCent% * (Cents% - LastCents%)) + ENDIF + IF KEY = 97 THEN + PlayerLocation%(0) = PlayerLocation%(0) - (XMovePerCent% * (Cents% - LastCents%)) + ENDIF + IF KEY = 113 THEN + IF DebugOut% = 1 THEN DebugOut% = 0 ELSE DebugOut% = 1 + ENDIF +ENDPROC + +REM Debug prints +DEF PROCdebugoutput + MOVE 0,500 + PRINT "X: " + STR$(PlayerLocation%(0)) " Y: " STR$(PlayerLocation%(1)) + IF KEY <> -1 THEN + PRINT "Key: " + STR$(KEY) + ELSE + PRINT "Key:" + ENDIF + PRINT "CPF: " + STR$(Cents% - LastCents%) +ENDPROC + +REM Delay routine - thanks Sophie DEF PROCdelay(n) T%=TIME+n:REPEAT UNTIL TIME > T% ENDPROC +REM Shorthand for sprite drawing SWI +DEF PROCdraw_sprite(name$,x%,y%) + SYS "OS_SpriteOp",34+256,sprite_area%,name$,x%,y%,0 +ENDPROC + +REM Loads sprite file - stolen off a forum somewhere DEF FNload_sprites(sprite_file$) LOCAL length%, area_ptr% SYS "OS_File",13,sprite_file$ TO ,,,,length% diff --git a/!TheEscape/!Sprites22,ff9 b/!TheEscape/!Sprites22,ff9 index f19c3f56a872c1ae8a92ad549fb2062be88df039..5c3ce06f2cee6151b25c17778f67daa9decfe160 100644 GIT binary patch delta 315 zcmaFD_k?f57S?(OR4`#CCrn@_2tYYVY%milF|%?y2!RzLu_r*)fQ-V;t}LH9v(g=6 zACNVDW;xWLnKR4FVTM9Xg17?75e&#|pdFkO9i^53|NjqE_~Ac4kOZ@V1V{)*0NIn* ju*po`!=^G>hMfn9RVVLd<2C@RKvM|OglrhZ4Ips1^l3NloeGdb6C+j XJj~{hn*Ww?H@mQ;?LPO)GqUVAr9Pih