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; }
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();}