PDA

View Full Version : Helping programming a status bars




Branskins
Jul 28, 2009, 12:27 AM
I am learning C++ at the same as I am programming a simple game. I am stuck on programming the health bar. I want it to decay over time, only to be increased by using a heal pot.

I thought it would be simple, which I still think it probably is, but what is the best way to go about doing this?



m3kilpat
Jul 28, 2009, 09:36 AM
Is this a command line based game? You could use the clock command to figure out elapsed time to subtract from the health and simply add to the health when a "pot" is used.

#include <time.h>

clock_t start, end;
double elapsed;

start = clock();
/* Do stuff */
end = clock();
elapsed = ((double) (end - start)) / CLOCKS_PER_SEC;


So you can subtract health something like every 30 seconds by putting the above code into a while loop and when elapsed = 30 then subtract from health.

Branskins
Jul 28, 2009, 04:13 PM
Okay thank you! Now let's say your health decays every 8 hours and you don't login for 1 day. How would it record this difference? Basically, what is the best way to save logout time and then compare it to login time?

Sorry for these trivial questions!

m3kilpat
Jul 29, 2009, 08:30 AM
Okay thank you! Now let's say your health decays every 8 hours and you don't login for 1 day. How would it record this difference? Basically, what is the best way to save logout time and then compare it to login time?

Sorry for these trivial questions!

Check out this page (http://www.cplusplus.com/reference/clibrary/ctime/time/).

That may or may not work. It depends on if you're programming for windows or unix because there is no default C++ time function. Time is a system library, so POSIX and windows each have their own. You can easily find what you're looking for with a quick google search.

But if the above link does work...You will get the number of seconds since the epoch when calling time. So save this number upon the user exiting. Once they load up again call time again and subtract the saved time from this new time to get the difference and then calculate number of hours and subtract health accordingly.

Branskins
Jul 29, 2009, 01:16 PM
Thanks! This should work :)