Computer Science Canada Guitar hero animation flickering problem |
Author: | Waugh [ Thu May 24, 2018 12:37 pm ] |
Post subject: | Guitar hero animation flickering problem |
I'm programming a guitar hero game for my programming class and I am having difficulty with the animation of the circle things that fall down that you tap. The problem is that because I have the "cls" part in each of the codes, it will run and clear the screen from all of the other falling objects as well, which gives the flickering effect. I need help with what I should do to achieve this effect without the flickering. Should I use the View.Update style things, if so how? Or if anyone has any better ideas I am open to them of course. Thank you! Here is that section of the code to help visualize/ make it easier to know what I mean (the "cls" parts have been bolded, as they are the issue spots so I figured it might be easier to make them stand out): process Blue var Purple_y1 : int := 620 var Purple_y2 : int := 680 for i : 1 .. 90 cls drawfillstar (100, Purple_y1, 160, Purple_y2, 13) Purple_y1 := Purple_y1 - 15 Purple_y2 := Purple_y2 - 15 delay (25) end for end Blue process Red var Red_y1 : int := 620 var Red_y2 : int := 680 for i : 1 .. 90 cls drawfillstar (360, Red_y1, 420, Red_y2, 12) Red_y1 := Red_y1 - 15 Red_y2 := Red_y2 - 15 delay (25) end for end Red fork Blue fork Red |
Author: | Insectoid [ Fri May 25, 2018 12:33 pm ] |
Post subject: | RE:Guitar hero animation flickering problem |
Instead of having two processes running simultaneously, you can use a single procedure that moves both circles, then draws both circles, and then erases everything, with just one loop. |
Author: | Srlancelot39 [ Fri May 25, 2018 1:17 pm ] |
Post subject: | Re: Guitar hero animation flickering problem |
In my experience, you should only need one clear statement and one update statement (per "thread"?). This will not only reduce/avoid flashing, but also make your code more clear and easy to follow. As Insectoid said, what you are doing can be done in just one process/thread (i.e. the main program "thread")...which is good, because Turing doesn't do parallel processing properly and this shows when graphics are run in a process. In contrast, audio doesn't seem to be affected when run in a process. |