CCEngine



  • Gut, der Code ist natürlich Windows only, aber immerhin kann ich jetzt Feedback geben.
    Irgendwie ist mir dein ganzes Interface zu C-Like. Ich finde da könnten durchaus mehr Klassen rein, die z.B rein Rechteck darstellen. Auch könnten da Stream-Manipulatoren für Farben rein. Die #defines gehören durch ein enum ersetzt.
    Das sind die Dinge, dir mir beim groben durchsehen aufgefallen sind.



  • Irgendwie ist mir dein ganzes Interface zu C-Like.

    Werde sehen was ich ändern kann.

    Ich finde da könnten durchaus mehr Klassen rein, die z.B rein Rechteck darstellen.

    Natürlich.Vielleicht schaffe ich sogar Dreiecke oder einen Kreis... was sicherlich bescheuert aussieht aber wer weißt für as man das braucht.
    ...Werd ich auf jedenfall machen

    Auch könnten da Stream-Manipulatoren für Farben rein.

    Was meinst du damit genau?Es gibt ja die 2 funktionen setFontColor() und setBGColor().
    Edit: ich glaub da gabs eine Lücke bei den hintergrund farben den ich fixen wollte. Ich muss noch mal sehen aber schreib was du damit meinst bitte

    Die #defines gehören durch ein enum ersetzt.

    Das ist klar.

    Dankeschön für das feedback des Meisters 😉

    Edit2:Da ich jetzt dann so in 5std in den Urlaub fahre werd ich jetzt dann mal für ne woche off sein.Die kann ich gut nutzen um mein neu bestelltes buch anzufangen : Accelerated C++ Practical Programming by Example

    Jo bin dann mal weg.Hoffe komm lebend wieder.Und wenn ich wieder komme überflute ich euch mit meinem erfüllten c++ geist...()der vorallem in einer woche gebildet wurde 🙄 )

    bb



  • Mit Streammanipulatoren meine ich, dass sowas möglich sein soll:

    std::cout << color::red << style::bold << "Hello, World!";
    


  • Wieder da 😃 ... mit Sonnenbrand am letzten Tag 🤡 war ja klar 😉

    Naja auf jeden Fall :

    Du meinst also das nur dieser bestimmte string farblich manipuliert wird ?

    also wenn ich

    ...
    setFontColor(COLOR_GREEN);
    std::cout << color::red << style::bold << "das ist rot";
    std::cout << "das ist grün";
    

    dann kommt

    (rot)das ist rot
    (grün)das ist grün
    

    wenn es das ist werd ich hinzufügen.Danke 👍



  • Ganze ..... 41 downloads hat das Ding jetzt schon , also muss ich mal wieder was machen...Danke für die downloads 😃 🤡
    (Wahrscheinlich sind von den 41 downloads 20 auf meinen rechner gegangen , um zu testen ob es geht , aber pschtttt)



  • Hey ich glaube ich mach mal wieder was.

    Mir ist gestern eingefallen , das eig. was ziehmlich praktischen/nützliches fehlt.
    Mouse/Keyboard support.Ich hab schon ein bisschen rumprobiert , sehr weit noch nicht , aber es geht

    setMouseButtonArea(int h,int w,COORD pos,MOUSE_BUTTON);
    

    Ein problem das ich hab , was in meinem kopf kursiert , ist die auszuführende aktion , wenn man in diesen Bereich drückt.Ich habe mir überlegt , einen platz für eine benutzerdefinierte funktion zu schaffen

    setMouseButtonArea(int h,int w,COORD pos,MOUSE_BUTTON,yourvoid());
    

    Ob das so geht muss ich noch sehen , wenn jemand ne gute idee hat , wäre ich ihm sehr verbunden.

    Was ich noch mache ,
    ➡ die nervenden namespaces entfernen ,
    ➡ und die Klassen namen umändern ,
    ➡ so wie ein bugfix , das bei

    setCenterBox();
    

    auftritt , bei den coord. für den text ist 0 1 , 1 2 usw , warum auch immer.

    Wenns soweit fertig ist , stell ich download rein.

    Bis denn



  • Was genau soll deine Funktion, die du in deinem letzten Beitrag erwähnt hast, denn machen? Soll diese einen Bereich auf dem Desktop(?) setzen und reagieren, wenn die jeweile Maustaste in diesem Bereich gedrückt wurde?
    Und scheinbar willst du eine Funktion als Parameter übergeben, verstehe ich das richtig? Wenn dem so ist, kannst du dir mal boost::function anschauen.
    Dann könntest du sowas in der Art machen:

    setMouseButtonArea(int heigth, int width, COORD pos, MOUSE_BUTTON mb, boost::function<void ()> action);
    

    Wobei ich vielleicht noch eine/mehrere Überladung/en anbieten würde, bei der die Koordinaten an die zu ausführende Funktion mit übergeben werden. Je nach Anwendungsfall, oder Sinn deiner Idee, könnte man sowas brauchen, um spezifischer darauf zu reagieren. Oder man will eventuell etwas anders reagieren wenn die linke oder rechte Maustaste gedrückt wurde.
    Aber wie gesagt, dass solltest du mal näher erläutern.



  • Ok da der erste post von dir nicht gelesen wurde , du hast aber trotzdem recht , werd ich noch mal sagen , das das alles für die console ist, MOUSE_BUTTON ist nur ein enum , hab ich hier schlecht dargestellt.

    Das mit boost werde ich mir mal ansehen , auch wenn ich lieber was ohne boost bevohrzuge(nicht das boost schlecht ist !!!)

    Im großen und ganzen will ich

    setMouseButtonArea(int h,int w,COORD pos,MOUSE_BUTTON);
    if mouse_button == key.pressed (hier nur mit den 3 maustasten halt)
    dievoiddiedannausgeführtwerdensoll();
    


  • Sozusagen hier soll fff durch say ersetzt werden

    void ausf(void fff){ fff();}
    void say(){cout << "sda\n";}
    
    int main()
    {
       ausf(say());
    }
    

    durch ausf() soll nun say() ausgeführt werden



  • Wenn du kein boost willst, musst du es halt per Hand machen. Schau dir Funktionspointer an.
    Ein Funktionspointer wird folgendermaßen definiert:

    //Rückgabetyp (*Name)(Parameter, ...) = &Funktion;
    void (*functionpointer)() = &say;
    ausf(functionpointer);
    

    Bei deinem Beispiel wurde das dann so aussehen:

    void ausf(void (*fp)())
    {
        fp();
    }
    
    void say()
    {
        std::cout << "sda\n";
    }
    
    int main()
    {
        ausf(&say);
    }
    

    Oder auf deine Funktion übertragen:

    setMouseButtonArea(int h, int w, COORD pos, MOUSE_BUTTON mb, void (*action)())
    {
        //...
        action();
    }
    

    Aber da schaust du am besten nochmal selbst nach.



  • Wow das ist echt genial.
    Ich muss ehrlich sagen , das ich das nicht hinbekommen hätte , und wenn sicher nicht so schön.

    Vielen dank man 😉

    Ich werd jetzt mal die cpp referenz ansehen und mir das aneigene.

    Danke nochmal 😃



  • Muhahaha.... 🙄

    Ok ich bin gerade dabei , eine Homepage für das ganze zu entwerfen 😉

    http://www.coreengine.de.vu/

    Nein sie ist nicht fertig. ⚠
    Könnt ja mal vorbeischauen 🤡

    Arbeite außerdem gerade an einem neuen release 1.2 ... 😉 🙂 🤡 🤡



  • Aus welchem Homepagebaukasten haste die denn ausgebuddelt? Und höre bitte auf zu plenken, das ist schrecklich...
    Btw: Es heißt "kompetent" 😉



  • Kóyaánasqatsi schrieb:

    Ich habe mal schnell was getibbelt; So in etwa stelle ich mir ein FileSystem vor: (Ist natürlich nicht vollständig)
    http://codepad.org/Au4TJEtd
    Und durch den "m_AbleToOpen"-State könnte man später sogar nochmal einen assert() aufrufen, wie man will... nur so als Tipp.

    Also ich sehe nur Nachteile gegenüber std::fstream (und davon einen Haufen!). Was willst du also damit`


Anmelden zum Antworten