Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Branskins

macrumors 65816
Original poster
Dec 8, 2008
1,235
180
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

macrumors regular
Jul 6, 2009
119
0
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.

Code:
#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

macrumors 65816
Original poster
Dec 8, 2008
1,235
180
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

macrumors regular
Jul 6, 2009
119
0
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.

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.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.