We have now made the selection variables global so that the parts of the program that use them can be moved out of the main loop and into functions.
Remember variables used in functions are local to that function, unless declared as global, and the same is true of the main loop.
If you do a quick scan of the code now, you will see that only two variables remain that are not global.
- imageRef - which holds the finger image reference
- spriteRef - which holds the finger sprite reference
Everything else can now be moved around to suite our needs without causing any problems. Hopefully.
The pointer position is recorded by the loopStart() function, it is only the handling of the results that remain in the main loop.
As this portion of code will only be used when a game is under way, it needs to be moved into the block of code which deals with that game state.
To do this we move the entire block, from if getPointerPressed() > 0 to just before setSpritePosition( spriteRef , PointDX() , PointDY() ), into a new function checkGamePointer().
Then add a line just after // Running Code, which calls this function.
Now move all the print statements from printc( "Phy: " ... down to just before the sync() command, into a new function PrintDiagnostics().
Then put in their place a line which calls this function.
This will leave the main block looking like this.
// Main Loop do LoopStart() select GameState() case STATE_SETUP // Setup Code endcase case STATE_INTRO // Intro Code endcase case STATE_DEMO // Demo Code endcase case STATE_MENU // Menu Code endcase case STATE_RUNNING // Running Code checkGamePointer() endcase endselect setSpritePosition( spriteRef , PointDX() , PointDY() ) PrintDiagnostics() sync() loopWhich is pretty compact. Now the Game will run as before, printing the information showing the screen size and pointer position, however clicking on the Objects word at the bottom will have no effect.
This is because the game state is set so that the game is not processing the pointer.
To test is still works ok, we add the following line just after //Setup Code in the STATE_SETUP block of the select structure.
setGameState( STATE_RUNNING )This changes the game state to STATE_RUNNING so that the pointer will respond again.
liagraphlan-po-1986 Patrick Burrell https://wakelet.com/wake/_pY23dbOE8ZaZt_TEv8BX
ReplyDeleterecalnide
Nsuicerioo Joe Bonsness get
ReplyDeleteDownload
icdedere