Timing changes query
BlitzMax Forums/BlitzMax Beginners Area/Timing changes query
| ||
Hi, Beginner question again :) This code moves a image on the screen in x+1, y+1 direction. I then want to alter the direction after a few seconds without any user input.After another 5 seconds I want to move it another direction. How do I go about scripting it like that ? Any suggestions ? Thanks in advance. Flake.png available at |
| ||
Graphics 800,600',32 'load an image to tile image=LoadImage("test2.png") duration=500 'millisecs = 1/2 sec dx=1 dy=1 timer=MilliSecs() While Not KeyHit(KEY_ESCAPE) TileImage image,x,y 'move the tiled background x=x+dx y=y+dy If MilliSecs()>timer+duration dx=-dx dy=-dy timer=MilliSecs() End If Flip;Cls Wend |
| ||
ahh, thanks alot. |
| ||
using for the image. This works: while this doesn't: I don't know why ? Am I right in asserting flip and cls should only be called once within a program? Any ideas or tips ? |
| ||
this is a scope problem. all the varibles within the function are local and refreshed everythime the function is called (or set back to 0) which means your basicaly doing 0 + 0 & 0 - 0. make x & y global and it should fix it. [edit] in fact it does fix it :) [edit 2] you need to globalize and init the other varibles too, by bet :D [extra note]why your first code works: the varibles are in the program scope. why your second code dont work: the varibles are in the function scope and as a result go out of scope when the function is exited and the varibles are re init when you cal the function again. |
| ||
Not needed. If you define a variable as global within a function, it won't lose its value when the function ends, so they still have their old value, the next time the function is called. |
| ||
well, you learn somthing new every day. thx Dreamora i wont have to create point varibles any more. |