int main()
{
	

	
	const std::string program_name{"Gravtacles V0.7"};
	
	assert(program_name != "");
	
	const float delta_delta_time{0.001f};
	 
	const float delta_time{0.025f};
	
	
	 
	const float window_x{704.0f};
	const float window_y{704.0f};
	
	assert(window_x > 0.0f);
	assert(window_y > 0.0f);
	 
	const sf::Vector2f window_sizes{window_x, window_y};
	 
	const sf::Color white{sf::Color(255, 255, 255)};    
    const sf::Color black{sf::Color(0, 0, 0)};    
    const sf::Color orange{sf::Color(255, 127, 0)};    
    const sf::Color purple{sf::Color(127, 0, 255)};    
    const sf::Color cyan{sf::Color(127, 255, 255)};
    const sf::Color red{sf::Color(255, 0, 0)};
    const sf::Color yellow{sf::Color(255, 255, 0)};
    const sf::Color green{sf::Color(0, 255, 0)};
    const sf::Color blue{sf::Color(127, 127, 255)};

	const sf::Vector2f begin_posit{0.05f*window_sizes};
	const sf::Vector2f end_posit{0.95f*window_sizes};
	
	cargo ball{begin_posit};
	
	pointer triforce{ball};
	
	target goal{end_posit};
	
	std::vector <float> strengths{-0.25f};
	std::vector <sf::Vector2f> pozitions{sf::Vector2f(0.5f*window_x, 0.5f*window_y)};
										
	std::vector <gravitor> gravs;
	
	int grav_number{1};
	
	gravs.push_back(gravitor (strengths[grav_number - 1], pozitions[grav_number - 1]));
	gravs[grav_number - 1].set_spriterator();

	score game_score{sf::Vector2f (0.48f*window_x, 0.035f*window_y)};

	sf::RenderWindow window{sf::VideoMode(window_x, window_y), program_name, sf::Style::Default};
	
	const int max_level{10000};
	
	int current_level{1};
	 
	while (window.isOpen())
    {
								
		while (current_level <= max_level)
		{
			
			bool stay_in_level{true};			
			bool show_triforce{true};			
			bool move_in_level{false};
			
			ball.set_position(begin_posit);
			ball.reset_speed();
			
			while (stay_in_level)
			{
		
				sf::Clock clock;
				
				sf::Event event;
				
				window.clear(black);
					
				for (int count{0}; count < grav_number; ++count)
				{
					
					gravs[count].show_gravitor(window);
					
				}
												
				goal.show_target(window);
				
				ball.show_cargo(window);
				
				game_score.show_score(window);
				
				if (show_triforce)
				{
					
					triforce.show_polygon(window);
					
				}
				
				window.display();
				
				triforce.morph_polygon(window);
				
				bool cargo_target{false}; 
				
				while ((clock.getElapsedTime().asSeconds() < delta_time) &&
					   !cargo_target)
				{
					
					sf::Clock delta_clock;
					
					while (delta_clock.getElapsedTime().asSeconds() < delta_delta_time)
					{
												
					}
					
					if (move_in_level)
					{
						
						const float delta_temp{delta_clock.getElapsedTime().asSeconds()};
						
						ball.reset_accel();
						
						for (int count{0}; count < grav_number; ++count)
						{
							
							gravitas(ball, gravs[count]);
							
						}
						
						ball.speed_add_accel(delta_temp);
						ball.decrease_speed();
						ball.posit_add_speed(delta_temp);						
						ball.set_position();
						ball.bounce(window_sizes);
						
						
						if (!show_triforce &&
							cargo_reach_target(ball, goal))
						{
							
							cargo_target = true;							
							stay_in_level = false;
							
							game_score.add_score();
							game_score.textify_score();
							
						}

					}					
					
				}
				
				
				
				if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && show_triforce)
				{
					
					
					show_triforce = false;					
					move_in_level = true;
					
					ball.set_click_speed(window);
					
				}
				
				if (!show_triforce &&
					sf::Mouse::isButtonPressed(sf::Mouse::Right))
				{
				
					stay_in_level = false;
					
				}
			
											
				if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
				{
					
					window.close();                    
					return 1;
							
				}    
				
				while (window.pollEvent(event))
				{
					
					if (event.type == sf::Event::Closed)
					{
						
						window.close();                
						return 2;
						
					}
				
				}
				
			}
			
			++current_level;
			
			++grav_number;
				
			gravs.push_back(gravitor (random_strength(), random_posit(window_sizes)));
			
			for (int count{0}; count < grav_number; ++count)
			{
				
				gravs[count].set_spriterator();
				
			}
			
		}
		
		window.close();                

    }
	 
	return 0;	 
	 
}
Esempio n. 2
0
void main(){
int gdriver = EGA, gmode = EGAHI, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
bk(); travel(); gravitas();
tvar=0;
m1c=m2c=adc=chdc=0;
signup_traction();

while(ch!=27)
{
if(kbhit())
{
ch=getch();
if(ch==77) {way(1);}
if(ch==75) {way(0);}
if(ch==80) {menu1();setcolor(6);settextstyle(2,0,4);
outtextxy(68,180,"<-");break;}
}}
flag1:
city();
m1c=0;
while(ch!=27)
{
gravitas();
if(kbhit())
{
ch=getch();

if(ch==80 && m1c<=15)                         //i city
{menu1();city();++m1c;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==72 && m1c>=1 && m1c<=15)
{menu1();city();m1c--;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==80 && m1c>=16 && m1c<=33)                 //2 city
{menu1();city2();m1c++;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==72 && m1c>=16 && m1c<=33)
{menu1();city2();m1c--;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==80 && m1c>=34 && m1c<=51)                 //3 city
{menu1();city3();m1c++;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==72 && m1c>=34 && m1c<=51)
{menu1();city3();m1c--;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==80 && m1c>=52 && m1c<56)                //4 city
{menu1();city4();m1c++;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==72 && m1c>=52 && m1c<=56)
{menu1();city4();m1c--;ibar();tarrow(m1c);mcounter(m1c);}

if(ch==13)
{from=m1c; bk(); travel(); mcounter(m1c);from=m1c;if(tvar)tmcounter(m2c);break;}

if(ch==77) { bk();travel();menu2();tcity();mcounter(m1c);from=m1c;menu2();break;}
}}

//flag2:
m2c=0;
while(ch!=27)
{
gravitas();
if(kbhit())
{
ch=getch();

if(ch==80 && m2c<=15)                         //i city
{menu2();tcity();++m2c;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==72 && m2c>=1 && m2c<=15)
{menu2();tcity();m2c--;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==80 && m2c>=16 && m2c<=33)                 //2 city
{menu2();tcity2();m2c++;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==72 && m2c>=16 && m2c<=33)
{menu2();tcity2();m2c--;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==80 && m2c>=34 && m2c<=51)                 //3 city
{menu2();tcity3();m2c++;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==72 && m2c>=34 && m2c<=51)
{menu2();tcity3();m2c--;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==80 && m2c>=52 && m2c<56)                //4 city
{menu2();tcity4();m2c++;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==72 && m2c>=52 && m2c<=56)
{menu2();tcity4();m2c--;tbar();arrow(m2c);tmcounter(m2c);}

if(ch==13)
{to=m2c; bk(); travel(); tvar=1;tmcounter(m2c);to=m2c;mcounter(m1c);break;}

if(ch==75)
{bk();travel(); to =m2c; tvar=1; tmcounter(m2c);to=m2c;menu1(); //goto flag1;
break;}

}
}

while(ch!=27)
{
gravitas();
if(kbhit())
{
ch=getch();
if(ch==80 && adc<10)
{admenu();adult();  adc++; adarrow(adc); adcounter(adc);}
if(ch==72 && adc>0)
{admenu();adult(); adc--; adarrow(adc);adcounter(adc);}
if(ch==77)
{adno=adc;chmenu();bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);break;}
if(ch==13)
{adno=adc;bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);break;}
}}

while(ch!=27)
{
gravitas();
if(kbhit())
{
ch=getch();
if(ch==80 && chdc<10)
{chmenu();child(); chdc++; charrow(chdc); chcounter(chdc);}
if(ch==72 && chdc>0)
{chmenu();child(); chdc--; charrow(chdc);chcounter(chdc);}
if(ch==77)
{chno=chdc;chmenu();bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);chcounter(chdc); break;}
if(ch==13)
{chno=chdc;bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);chcounter(chdc); break;}
}}

while(ch!=27)
{ gravitas();
if(kbhit())
{
ch=getch();
if(ch==80 && inc<10)
{inmenu();infant(); inc++; inarrow(inc); incounter(inc);}
if(ch==72 && inc>0)
{inmenu();infant(); inc--; inarrow(inc);incounter(inc);}
if(ch==77)
{inno=inc;inmenu();bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);chcounter(chdc);incounter(inc); break;}
if(ch==13)
{inno=chdc;bk(); travel();tmcounter(m2c);mcounter(m1c);adcounter(adc);chcounter(chdc);incounter(inc); break;}
}}

while(ch!=27)
{
gravitas();
if(kbhit())
{
ch=getch();
if(ch==77) {ecob(1);suit=1;}
if(ch==75) {ecob(0);suit=0;}
if(ch==13) {break;}
}
}

setcolor(1);settextstyle(2,0,4);
ch=0;
while(ch!=13)
{
if(kbhit())
{da+=8;
ch=getch();
if(isalnum(ch) && da<=95)
{sprintf(dater,"%c",ch);
outtextxy(da,272,dater);}

if(ch==8 && da>=45 && da<=180)
{da=da-8;
setfillstyle(1,15);  bar(da,272,da+8,285);
da=da-8;}
}}

if(suit==0)flight(to);
if(suit==1)bflight(to);
traction();
secure();
money_transfer();

getch();
closegraph();}