CCEngine



  • Ahh da fällt mir auch gleich noch was dazu ein :

    Ich werde mal versuchen ach so was wie die read_IFile funktion zu machen aber so das man :
    1.Einen bestimmten string suchen kann.So zum beispiel wenn ein Fehler log ausgegeben wird der einen Error code vor jedem error enthält und man einen bestimmten fehler sucht so wie z.B:
    error.txt:

    Error 9480219384 Nich gefunden
    Error 62356836676 i/o Path falsch
    Error 1014812 das programm mag dich nicht
    

    und man sucht jetzt nur nach einem path error könnte man so schneller finden ... oder was auch immer.

    2.In der Datei ab einer bestimmten position anfangen zu lesen oder zu schreiben
    So was ähnliches wie eine Cursor-Positions-Funktion bloß mit zeilen und spalten....

    Leider ist theorie meistens einfacher als praxis 😉

    mal sehen was draus wird



  • @ Koya
    Zu dem code den du mir da gegben hast gibt es eins was ich nicht kenne.
    Tut mir leid wenn ich gerade blöd anstelle aber

    C3dsInStream::C3dsInStream( const char *Filename ) :
    m_Stream( Filename, std::ifstream::in )
    

    Diese Zeile sieht nach einem fehler aus ?! 😕
    Oder hast du ich einfach nur verschrieben ?
    Kommt ja vor , besonders oft bei mir :p 😃



  • Hey,
    ich kann da kein Fehler sehen. Google mal nach Initialisierungsliste 🙂



  • Tach. Sieht eigentlich ganz nett aus. Aber den Wisch den du da als Copyright mitlieferst ist nichts. Sieh dir mal die ZLib-Lizenz an...



  • Initialisierungsliste werde ich mir mal gelegentlich durchlesen da ich das so noch nicht kenne.

    Wegen dem copyright : eig. ist es ja auch egal aber ich werds mir anschauen thx 🕶



  • Scheiss doch auf den copyright.



  • Meine rede 😉



  • Alleine dass deine Klassennamen offenbar Präfixe haben, lässt mich zurückschrecken. Mit ner .exe fang ich unter Mac OS X auch nichts an.



  • Alleine dass deine Klassennamen offenbar Präfixe haben, lässt mich zurückschrecken

    😋 Bin halt ich 😉

    Mit ner .exe fang ich unter Mac OS X auch nichts an.

    Sorry link ist ein paar sek da



  • Link ist da.



  • 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.


Anmelden zum Antworten