Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

05.06.2015, 20:38

Den kompletten? ich kann den mal einfügen. Der ist echt seeeeehr lang. Bitte nicht zu harte Kritik, das sind noch meine ersten tests in der SFML Bibliothek!
Sämtliche Komentare bitte überlesen, oft sind das nur tests oder Lückenfüller!

Hier mein etwas langer Code :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <SFML/Graphics.hpp>#include <iostream>#include <cstdlib>#include <ctime>#include <Windows.h>#include <string>#include <string.h>#include <sstream>

//#include <Clock.hpp>
using namespace sf;
int main(){    RenderWindow window(VideoMode(750, 600), "Schlag den Smiley");
 window.setFramerateLimit(60);
//Deklarationen int punkte=0; int level=1;

std::stringstream ss;ss << punkte;std::string str = ss.str();std::stringstream ss2;ss2 << level;std::string str2 = ss.str();
 //std::string punkte_string= punkte_string + "hi"; //std::string punkte_string("Punkte: "); //punkte_string= ss.punkte_string;
bool buttongeklickt[15];for(int x=0; x<16;x++){buttongeklickt[x]=false;}
bool traurig[15];for(int x=0; x<16;x++){traurig[x]=false;}
sf::Font font;if (!font.loadFromFile("arial.ttf")){  std::cout<<"epic fail!!!";}  sf::Texture günter;if (!günter.loadFromFile("smileygelb_texture.png")){   std::cout<<"epic fail!!!";} sf::Texture günter2;if (!günter2.loadFromFile("Günter traurig.png")){   std::cout<<"epic fail!!!";} sf::Texture günter3;if (!günter3.loadFromFile("Günter traurig_grün.png")){   std::cout<<"epic fail!!!";} sf::Texture günter4;if (!günter4.loadFromFile("smileyrot_texture.png")){   std::cout<<"epic fail!!!";}Event mainevent;

CircleShape smiley(50, 100); // smiley smiley.setTexture(&günter);
CircleShape smiley2(50, 100); // smiley2 smiley2.setTexture(&günter); smiley2.move(150,0);
CircleShape smiley3(50, 100); // smiley3 smiley3.setTexture(&günter); smiley3.move(300,0);
CircleShape smiley4(50, 100); // smiley4 smiley4.setTexture(&günter); smiley4.move(450,0);
 CircleShape smiley5(50, 100); // smiley5 smiley5.setTexture(&günter); smiley5.move(0,150);
CircleShape smiley6(50, 100); // smiley6 smiley6.setTexture(&günter); smiley6.move(150,150);
CircleShape smiley7(50, 100); // smiley7 smiley7.setTexture(&günter); smiley7.move(300,150);
CircleShape smiley8(50, 100); // smiley8 smiley8.setTexture(&günter); smiley8.move(450,150);
CircleShape smiley9(50, 100); // smiley9 smiley9.setTexture(&günter); smiley9.move(0,300);
CircleShape smiley10(50, 100); // smiley10 smiley10.setTexture(&günter); smiley10.move(150,300);
CircleShape smiley11(50, 100); // smiley11 smiley11.setTexture(&günter); smiley11.move(300,300);
 CircleShape smiley12(50, 100); // smiley12 smiley12.setTexture(&günter); smiley12.move(450,300);
CircleShape smiley13(50, 100); // smiley13 smiley13.setTexture(&günter); smiley13.move(0,450);
CircleShape smiley14(50, 100); // smiley14 smiley14.setTexture(&günter); smiley14.move(150,450);
CircleShape smiley15(50, 100); // smiley15 smiley15.setTexture(&günter); smiley15.move(300,450);
CircleShape smiley16(50, 100); // smiley16 smiley16.setTexture(&günter); smiley16.move(450,450);

 sf::Sprite hintergrund;hintergrund.setTexture(günter);//hintergrund.setScale();
// Schrift Punkte:sf::Text punkte_schrift;
// select the fontpunkte_schrift.setFont(font); // font is a sf::Font
// set the string to displaypunkte_schrift.setString(str);
// set the character sizepunkte_schrift.setCharacterSize(24); // in pixels, not points!
// set the colorpunkte_schrift.move(120,565);
// set the text stylepunkte_schrift.setStyle(sf::Text::Bold);
sf::Text punkte_schrift2;punkte_schrift2.setFont(font); // font is a sf::Fontpunkte_schrift2.setString("Punkte: ");punkte_schrift2.setCharacterSize(24); // in pixels, not points!punkte_schrift2.move(20,565);punkte_schrift2.setStyle(sf::Text::Bold);
sf::Text level_schrift;level_schrift.setFont(font); // font is a sf::Fontlevel_schrift.setString("Level: ");level_schrift.setCharacterSize(24); // in pixels, not points!level_schrift.move(250,565);level_schrift.setStyle(sf::Text::Bold);
sf::Text level_2;level_2.setFont(font); // font is a sf::Fontlevel_2.setString(str2);level_2.setCharacterSize(24); // in pixels, not points!level_2.move(340,565);level_2.setStyle(sf::Text::Bold);

// Zufall ------------------------------------------------------
srand((unsigned int)time(0));rand();int zufall[15];for(int y=0; y<16; y++){ zufall[y]=0;zufall[y]=(rand()%2);std::cout<<zufall[y]<<std::endl;//Auswertung:if(zufall[y]==1){traurig[y]=true;}}//Texturen ändern:if(traurig[0]== true)   smiley.setTexture(&günter2);if(traurig[1]== true)  smiley2.setTexture(&günter2);if(traurig[2]== true) smiley3.setTexture(&günter2);if(traurig[3]== true) smiley4.setTexture(&günter2);if(traurig[4]== true) smiley5.setTexture(&günter2);if(traurig[5]== true) smiley6.setTexture(&günter2);if(traurig[6]== true) smiley7.setTexture(&günter2);if(traurig[7]== true) smiley8.setTexture(&günter2);if(traurig[8]== true) smiley9.setTexture(&günter2);if(traurig[9]== true) smiley10.setTexture(&günter2);if(traurig[10]== true)   smiley11.setTexture(&günter2);if(traurig[11]== true)   smiley12.setTexture(&günter2);if(traurig[12]== true)   smiley13.setTexture(&günter2);if(traurig[13]== true)   smiley14.setTexture(&günter2);if(traurig[14]== true)   smiley15.setTexture(&günter2);if(traurig[15]== true)   smiley16.setTexture(&günter2);// Schleife -----------------------------------------------------


    while (window.isOpen())    {              while (window.pollEvent(mainevent))        {           auto position = sf::Mouse::getPosition(window);           std::cout<<"X:"<<position.x<<std::endl;         std::cout<<"Y:"<<position.y<<std::endl;          // Positionsabfrage //--------------------------------------------------------------------------------TREFFERABFRAGE!!!-----------------------------------------           //Button 1:         if(position.x<100 && position.x>0 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[0]==true && buttongeklickt[0]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley.setTexture(&günter3);           punkte=punkte+5;        buttongeklickt[0]=true;         traurig[0]=false;           }           if(position.x<100 && position.x>0 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[0]==false && buttongeklickt[0]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley.setTexture(&günter4);           punkte=punkte-20;           buttongeklickt[0]=true;         traurig[0]=false;           }           //Button 2:         if(position.x<250 && position.x>150 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[1]==true && buttongeklickt[1]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley2.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[1]=true;         traurig[1]=false;           }           if(position.x<250 && position.x>150 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[1]==false && buttongeklickt[1]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley2.setTexture(&günter4);          punkte=punkte-20;           buttongeklickt[1]=true;         traurig[1]=false;           }            //Button 3:        if(position.x<400 && position.x>300 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[2]==true && buttongeklickt[2]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley3.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[2]=true;         traurig[2]=false;           }           if(position.x<400 && position.x>300 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[2]==false && buttongeklickt[2]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley3.setTexture(&günter4);          punkte=punkte-20;           traurig[2]=false;           buttongeklickt[2]=true;         }            //Button 4:        if(position.x<550 && position.x>450 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[3]==true && buttongeklickt[3]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley4.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[3]=true;         traurig[3]=false;           }           if(position.x<550 && position.x>450 && position.y>0 && position.y<100 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[3]==false && buttongeklickt[3]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley4.setTexture(&günter4);          punkte=punkte-20;           buttongeklickt[3]=true;         traurig[3]=false;           }
            //Button 5:        if(position.x<100 && position.x>0 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[4]==true && buttongeklickt[4]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley5.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[4]=true;         traurig[4]=false;           }           if(position.x<100 && position.x>0 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[4]==false && buttongeklickt[4]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley5.setTexture(&günter4);          punkte=punkte-20;           buttongeklickt[4]=true;         traurig[4]=false;           }           //Button 6:         if(position.x<250 && position.x>150 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[5]==true && buttongeklickt[5]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley6.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[5]=true;         traurig[5]=false;           }           if(position.x<250 && position.x>150 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[5]==false && buttongeklickt[5]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley6.setTexture(&günter4);          punkte=punkte-20;           buttongeklickt[5]=true;         traurig[5]=false;           }            //Button 7:        if(position.x<400 && position.x>300 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[6]==true && buttongeklickt[6]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley7.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[6]=true;         traurig[6]=false;           }           if(position.x<400 && position.x>300 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[6]==false && buttongeklickt[6]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley7.setTexture(&günter4);          punkte=punkte-20;           buttongeklickt[6]=true;         traurig[6]=false;           }            //Button 8:        if(position.x<550 && position.x>450 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[7]==true && buttongeklickt[7]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley8.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[7]=true;         traurig[7]=false;           }           if(position.x<550 && position.x>450 && position.y>150 && position.y<250 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[7]==false && buttongeklickt[7]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley8.setTexture(&günter4);          punkte=punkte-20;           traurig[7]=false;           buttongeklickt[7]=true;         }
           //Button 9:         if(position.x<100 && position.x>0 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[8]==true && buttongeklickt[8]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley9.setTexture(&günter3);          punkte=punkte+5;        buttongeklickt[8]=true;         traurig[8]=false;           }           if(position.x<100 && position.x>0 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[8]==false && buttongeklickt[8]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley9.setTexture(&günter4);          punkte=punkte-20;           traurig[8]=false;           buttongeklickt[8]=true;         }           //Button 10:        if(position.x<250 && position.x>150 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[9]==true && buttongeklickt[9]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley10.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[9]=true;         traurig[9]=false;           }           if(position.x<250 && position.x>150 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[9]==false && buttongeklickt[9]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley10.setTexture(&günter4);         punkte=punkte-20;           traurig[9]=false;           buttongeklickt[9]=true;         }            //Button 11:           if(position.x<400 && position.x>300 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[10]==true && buttongeklickt[10]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley11.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[10]=true;        traurig[10]=false;          }           if(position.x<400 && position.x>300 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[10]==false && buttongeklickt[10]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley11.setTexture(&günter4);         punkte=punkte-20;           buttongeklickt[10]=true;        traurig[10]=false;          }            //Button 12:           if(position.x<550 && position.x>450 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[11]==true && buttongeklickt[11]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley12.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[11]=true;        traurig[11]=false;          }           if(position.x<550 && position.x>450 && position.y>300 && position.y<400 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[11]==false && buttongeklickt[11]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley12.setTexture(&günter4);         punkte=punkte-20;           buttongeklickt[11]=true;        traurig[11]=false;          }
            //Button 13:           if(position.x<100 && position.x>0 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[12]==true && buttongeklickt[12]==false)  {        std::cout<<"Super! Treffer! +5 Punkte";         smiley13.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[12]=true;        traurig[12]=false;          }           if(position.x<100 && position.x>0 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[12]==false && buttongeklickt[12]==false)  {           std::cout<<"Falscher Smiley! -20 Punkte";           smiley13.setTexture(&günter4);         punkte=punkte-20;           buttongeklickt[12]=true;        traurig[12]=false;          }           //Button 14:        if(position.x<250 && position.x>150 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[13]==true && buttongeklickt[13]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley14.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[13]=true;      traurig[13]=false;        }           if(position.x<250 && position.x>150 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[13]==false && buttongeklickt[13]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley14.setTexture(&günter4);         punkte=punkte-20;           buttongeklickt[13]=true;        traurig[13]=false;          }            //Button 15:           if(position.x<400 && position.x>300 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[14]==true && buttongeklickt[14]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley15.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[14]=true;       traurig[14]=false;           }           if(position.x<400 && position.x>300 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[14]==false && buttongeklickt[14]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley15.setTexture(&günter4);         punkte=punkte-20;           buttongeklickt[14]=true;        traurig[14]=false;          }            //Button 16:           if(position.x<550 && position.x>450 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[15]==true && buttongeklickt[15]==false)  {          std::cout<<"Super! Treffer! +5 Punkte";         smiley16.setTexture(&günter3);         punkte=punkte+5;        buttongeklickt[15]=true;        traurig[15]=false;          }           if(position.x<550 && position.x>450 && position.y>450 && position.y<550 && sf::Mouse::isButtonPressed(sf::Mouse::Left)==true && traurig[15]==false && buttongeklickt[15]==false)  {         std::cout<<"Falscher Smiley! -20 Punkte";           smiley16.setTexture(&günter4);         buttongeklickt[15]=true;        traurig[15]=false;          }                   ss.str("");            ss << punkte;str = ss.str();punkte_schrift.setString(str);// Ende Trefferabfrage -----------------------------------------------------------------------------------------------------------


// --------------------- NEU LADEN -------------------------------------------------------------
if(traurig[0]== false && traurig[1]== false && traurig[2]== false && traurig[3]== false && traurig[4]== false && traurig[5]== false && traurig[6]== false && traurig[7]== false && traurig[8]== false && traurig[9]== false && traurig[10]== false && traurig[11]== false && traurig[12]== false && traurig[13]== false && traurig[14]== false && traurig[15]== false ){    level=level+1;  Sleep(100); for(int x=0; x<16; x++){    buttongeklickt[x]=false;    traurig[x]=false;   }   //Zufall:   rand();
for(int y=0; y<16; y++){    zufall[y]=0;zufall[y]=(rand()%2);std::cout<<zufall[y]<<std::endl;//Auswertung:if(zufall[y]==1){traurig[y]=true;}}//Texturen ändern:if(traurig[0]== true)   smiley.setTexture(&günter2);else   smiley.setTexture(&günter);if(traurig[1]== true)   smiley2.setTexture(&günter2);else  smiley2.setTexture(&günter);if(traurig[2]== true)  smiley3.setTexture(&günter2);else  smiley3.setTexture(&günter);if(traurig[3]== true)  smiley4.setTexture(&günter2);else  smiley4.setTexture(&günter);if(traurig[4]== true)  smiley5.setTexture(&günter2);else  smiley5.setTexture(&günter);if(traurig[5]== true)  smiley6.setTexture(&günter2);else  smiley6.setTexture(&günter);if(traurig[6]== true)  smiley7.setTexture(&günter2);else  smiley7.setTexture(&günter);if(traurig[7]== true)  smiley8.setTexture(&günter2);else  smiley8.setTexture(&günter);if(traurig[8]== true)  smiley9.setTexture(&günter2);else  smiley9.setTexture(&günter);if(traurig[9]== true)  smiley10.setTexture(&günter2);else smiley10.setTexture(&günter);if(traurig[10]== true)    smiley11.setTexture(&günter2);else smiley11.setTexture(&günter);if(traurig[11]== true)    smiley12.setTexture(&günter2);else smiley12.setTexture(&günter);if(traurig[12]== true)    smiley13.setTexture(&günter2);else smiley13.setTexture(&günter);if(traurig[13]== true)    smiley14.setTexture(&günter2);else smiley14.setTexture(&günter);if(traurig[14]== true)    smiley15.setTexture(&günter2);else smiley15.setTexture(&günter);if(traurig[15]== true)    smiley16.setTexture(&günter2);else smiley16.setTexture(&günter);
ss2.str("");          ss2 << level;str2 = ss2.str();level_2.setString(str2);
}
// --------------------- Ende Laden ------------------------------------------------------------




           position.x=0;           position.y=0;       }        window.clear(sf::Color::Black);
       window.draw(smiley);    window.draw(smiley2);       window.draw(smiley3);       window.draw(smiley4);       window.draw(smiley5);       window.draw(smiley6);       window.draw(smiley7);       window.draw(smiley8);       window.draw(smiley9);       window.draw(smiley10);      window.draw(smiley11);      window.draw(smiley12);      window.draw(smiley13);      window.draw(smiley14);      window.draw(smiley15);      window.draw(smiley16);
       window.draw(punkte_schrift);     window.draw(punkte_schrift2);       window.draw(level_schrift);     window.draw(level_2);        //  window.draw(hintergrund);

        // end the current frame        window.display();    }
    return 0;}
»darioprogrammiert« hat folgendes Bild angehängt:
  • Schlag den Smiley 1.PNG
»darioprogrammiert« hat folgende Datei angehängt:
  • main.cpp (21,05 kB - 20 mal heruntergeladen - zuletzt: 17.05.2024, 03:01)
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

22

05.06.2015, 20:39

Ähm kann mir einer sagen, wie man das in NORMALER Formatierung einfügen kann? 600 Zeilen auf 70 zu pressen war nicht mein Ziel :D
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

23

06.06.2015, 12:38

Danke. versuch ich nochmal. Natürlich sind Sekunden für den Anfang ausreichend. Besser als nix und somit besser als mein aktuelles Wissen :D
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

24

06.06.2015, 12:45

Wo genau liegt den das Problem?

Einpaar Beispiel sind ja hier schon gefallen.
Fehlt dir das Verständnis oder Kommst du mit den Vorgeschlagenen Möglichkeiten (<chrono>, sf::clock, time_t) nicht zurecht?
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

25

06.06.2015, 13:32

Ich habe folgendes ausprobiert:

[cpp]
bool
startspiel=false;

time_t timer;

struct tm
y2k = {0};

double
seconds;



y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_sec = 0;

y2k.tm_year = 100; y2k.tm_mon = 0;
y2k.tm_mday = 1;



time(&timer); /* get current
time; same as: timer = time(NULL) */

seconds =
difftime(timer,mktime(&y2k));

const
int beginn_const = seconds;

int aktuelle_zeit=60;





if(startspiel==true){



tm y2k =
{0};



y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_sec = 0;

y2k.tm_year = 100; y2k.tm_mon = 0;
y2k.tm_mday = 1;



time(&timer); /* get current
time; same as: timer = time(NULL) */

seconds =
difftime(timer,mktime(&y2k));





aktuelle_zeit=beginn_const-seconds;


aktuelle_zeit=aktuelle_zeit+60;
// 60 sekunden timer




std::cout<<"Zeit "<<aktuelle_zeit<<std::endl;

ss3.str("");


ss3 << aktuelle_zeit;

str3 = ss3.str();

zeit.setString(str3);

}



[/cpp]

Leider habe ich das Problem, dass so die Zeit, welche ich als const vorher festlege nicht erst dann startet wenn der spieler START drückt. Wie kann ich das verbessern? Der constente wert müsste irgendwie später zugeteilt werden, oder? Denn wenn ein spieler erst spät auf start drückt ist aktuell die zeit möglicherweise schon abgelaufen. es beginnt dann nicht mit 60, sonder halt mit 48 oder so.

Kannst du mir da helfen?
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »darioprogrammiert« (06.06.2015, 13:37)


26

06.06.2015, 13:44

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
sf::Clock myClock;
// ...
if(startspiel)
{
    myClock.restart();
    
    // gameLoop
        if(myClock.getElapsedTime() >= sf::seconds(60.f))
            //time is up!
}
// ...

oh man...

MfG
Check

27

06.06.2015, 16:16

ja aber er braucht einen countdown.
Klappt das mit dieser Methode von Checkmaiteing nicht?



C-/C++-Quelltext
1
2
3
4
5
6
7
8
9
10
11
sf::Clock myClock;
// ...
if(startspiel)
{
myClock.restart();

// gameLoop
if(myClock.getElapsedTime() >= sf::seconds(60.f))
//time is up!
}
// ...

oh man...
Und sorry, dass ich so unwissend bin, aber deshalb farg ich ja, ich dachte das ist der Sinn des Forums. Hätte ich alles verstanden wäre ich schließlich nicht hier!
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

28

06.06.2015, 16:37

schade. Meine methode mit c_time klappt ja soweit nur leider schaff ich es nicht den timer erst dann zu starten wenn ich will, da der constante wert der anfangszeit ja schon bei dessen deklaration bedacht werden muss. somit wird mit programmstart auch der timer gestartet, nicht erst - wie ich will - wenn der spieler den Button geklickt hat!
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

29

06.06.2015, 17:30

Es bezog sich nicht darauf, eher auf den Aufwand, der betrieben wird, nur um so ein bisschen Zeit abzufragen. Das geht mittlerweile viel einfacher, auch ohne C++11, es ist doch ein SFML-Projekt, warum nicht benutzen?
Außerdem hat chrono auch sehr viele verschachtelte namespaces, was relativ unleserlich werden kann. Immer, wenn ich ein SFML-Projekt habe, benutze ich das entsprechende System-Modul, welches einem ja diese "Schnittstelle" bereitstellt.
Sei doch nicht so empfindlich und huste mich gleich an, ist ja schlimm. Nun denn.
--
Natürlich geht das mit "meiner" Methode. (natürlich eher Pseudo-C++-Code, nicht dass das auch noch bemängelt wird....)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sf::Clock myClock;
// ...
if(startspiel)
{
    myClock.restart();

    // gameLoop
    {
        sf::Time currentTime = myClock.getElapsedTime();
        if(currentTime) >= sf::seconds(60.f))
            //time is up!

        std::stringstream ss;
        ss << std::setprecision(2);
        ss << std::fixed;  // bei Fällen wie 2 wird eine zusätzliche Null drangehangen, also 2.0, damit es noch schön aussieht
        ss << currentTime.asSeconds();
        std::string meinTollerStringMitDerAktuellenZeitGerundetAufDieErsteNachkommastelle = ss.str();
        //mach was damit
    }
}
// ...

stringstream ist im Header <sstream> und `setprecision` wie auch `fixed` sind in `<iomanip>`. Aber gidf :)

MfG
Check

//EDIT: Mach ihn nicht const und setze ihn erst dann, wenn er ihn geklickt hat.... Wo ist da die Schwierigkeit? Die Butten-Klick-Abfrage scheint ja zu klappen, also....?

Werbeanzeige