#include <iostream>
#include <ctime> 
#include <cstdlib>
#include <string>
#include <windows.h>
#include <ctime>
#include <conio.h>
#include <ctype.h>
#include <iomanip>

using namespace std;

void gotoy(int y);
void timechange(time_t start1);
void timeevent();

int boost=0;
int Eboost=0;
int power=40;
int HP=100;
int EHP=100;
int Epower=10;
int dtime=0;

time_t start, end,start1;

int main()
{
	
	start=time(NULL);
	srand((unsigned)time(0)); 
	cout<<"Fighting Game\n";
	cout<<"-------------\n";
	cout<<"Player 1\n";
	cout<<"HP: "<<HP<<"/100"<<endl<<endl<<endl;
	cout<<"Player 2\n";
	cout<<"HP: "<<EHP<<"/100"<<endl<<endl<<endl;
	cout<<"1. Attack (10 power)\n";
	cout<<"2. Power Attack (10 power)\n";
	cout<<"3. Cocaine (10 power)\n";
	cout<<"4. Heal (10 power)\n";
	
	do
	{		
		
		gotoy(3);
		cout<<"Player 1\n";
		cout<<"HP: "<<right<<setw(3)<<HP<<"/100"<<endl;
		cout<<"Power: "<<right<<setw(3)<<power<<"/100"<<endl<<endl;
		gotoy(7);
		cout<<"Player 2\n";
		cout<<"HP: "<<right<<setw(3)<<EHP<<"/100"<<endl;
		cout<<"Power: "<<right<<setw(3)<<Epower<<"/100"<<endl<<endl;
		timechange(start);
		
		
		if (GetAsyncKeyState(VK_UP)&&power>=10)
		{
			power-=10;
                        EHP-=10;
		}


	
	}
	while(EHP>1||HP>1);

	return 0;
}
void gotoy (int y)
{
	y-=1;
    COORD coord;
    coord.X = 0; coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void timechange(time_t start1)
{
	end=time(NULL);
	dtime=difftime(end, start1);
	if (dtime==1)
	{
		timeevent();
		dtime=0;
		start=end;
	}
	

}
void timeevent()
{
	power+=1;
	if (boost>0)
	{
		boost-=1;
		power+=3;
	}
	if (power>100)
	{power=100;}

	Epower+=1;
	if (Eboost>0)
	{
		Eboost-=1;
		Epower+=3;
	}
	if (Epower>100)
	{Epower=100;}

}

here is my code i tried GetAsyncKeyState but it happens too fast
and getch pauses the program.

so ill explain how my program works it uses a timer and the power builds up based on seconds so it needs to be in a constant loop to keep my screen updated

once a player has enough power you can preform a move

is there a command where it reads the key when the finger leaves the keyboard

Thanks

Recommended Answers

All 2 Replies

Somehow I get the impression that you want to run the timer in a separate thread.

Yay!
*Votes In Favor of Boost::Threads*

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.