KollisionsAbfrage..... und jetzt?



  • Hey Laguna an welchem spiel proggst denn gerade??
    Und wie machste das mit der Grafik??



  • TGGC schrieb:

    Laguna schrieb:

    @noebef : Wie kann ich dann abfragen, ob es true oder false ist?

    Ahhh, nein. Ich will STERBEN!!!

    Bye, TGGC (Der Held bei Dir!)

    Dann geh halt sterben!!! 👎



  • Laguna schrieb:

    bool IsKolli;
    bool kollision(objekt objekt1,objekt objekt2);
    Kollision(ship , Station);

    gnarf.. daraus, und den folgenden fragen würde ich vermuten, daß du besser ERST programmieren an sich lernst und DANN versuchst spiele zu machen. wozu hat deine funktion einen rückgabewert, wenn du ihn nicht benutzt? wozu das grauenhaft umständliche gefummel mit einer globalen variable?

    die schulbildung hat damit wenig bis gar nichts zu tun, zumal erfahrungsgemäßg über 90% des info-unterrichts an schulen für die tonne ist, weil der lehrer meistens weniger ahnung hat als die hälfte seiner schüler oder den leuten "programmieren" beigebracht wird, indem sie irgendwas mit delphi oder vb zusammenklicken, ohne zu kapieren (geschweige denn erklärt zu bekommen), was dabei eigentlich wirklich passiert.

    dein code benutzt den wert genau einmal, also kann da auch gleich
    if (ship.dir == LINKS && Kollision(ship , Station))
    stehen.

    ein ==true ist überflüssig.. wenn die linke seite sowieso true ist, dann muß man nicht zusätzlich prüfen, ob der vergleich mit true ein true ergibt, außerdem kann man sich bei bedingungen drauf verlassen, daß sie von links nach rechts laufen und abbrechen, sobald das ergebnis klar ist (sprich, ist dir NICHT links, dann wird der rest erst gar nicht getestet).

    würde das ganze mehrmals gebraucht, dann steht da eben:
    bool isKoll = Kollision(ship , Station);

    aber isKoll bleibt auf den ort beschränkt, wo es auch gebraucht wird. und selbst wenn einem sauberer code egal ist, dann spricht die performance auch dafür.

    ship.x -= (100 * frametime)/ 1000;

    erm... was spricht gegen frametime * .1 ? divisionen sind pfui (auch wenn die einen einmal pro frame nicht umbringen).

    außerdem prüft deine funktion ob VOR der bewegung irgendwas überschneidet, was eher weniger sinnvoll ist. du willst ja letztlich wissen, OB du die bewegung überhaupt durchführen kannst (die neue position prüfen ist minimal besser, ganz sauber wäre es genau zu bestimmen ob und an welchem punkt der bewegung kollidiert wird).

    und deine schräge bewegung.. wie sieht denn ship.dir überhaupt aus, wenn du dich schräg bewegst? mit etwas raten kann ich dir das sagen:

    du willst nach links oben:

    dir ist links, links ist gedrückt, kollision, nichts passiert.
    dir ist links, oben ist gedrückt, kein test, es bewegt sich, richtung wird oben.

    nächster frame:
    dir ist oben, links ist gedrückt, kein test, bewegung, richtung wird links.
    dir ist linke, oben ist gedrückt, kein test, bewegung, richtung wird oben.

    kurz: die ganze methode KANN nicht funktionieren.

    nur zur verwirrung (und absichtlich mit potentieller falle):

    vec2 oldpos(ship.pos);
    ship.pos += vec2(key[R] - key[L], key[U] - key[D]) * frametime * .1;
    if (kollision(...)) ship.pos=oldpos;



  • stealth00 schrieb:

    TGGC schrieb:

    Laguna schrieb:

    @noebef : Wie kann ich dann abfragen, ob es true oder false ist?

    Ahhh, nein. Ich will STERBEN!!!

    Bye, TGGC (Der Held bei Dir!)

    Dann geh halt sterben!!! 👎

    dann soll er dich mitnehmen-.-



  • Man, seid ihr wieder mies drauf... 😎

    Bye, TGGC (Der Held bei Dir!)



  • Anstatt ihm zu helfen regt sich jeder auf wie dumm dass seine
    Frage ist!! Hilfe hätte er wohl nötiger!! 😋

    PS: Hey Laguna ich bin auch in der 9nten!!



  • ICh liebe Smileys!!!!

    🙂 😃 😉 😞 :p 😡 🙄 😮 😕 🕶

    Tschuldigung für den Spam.



  • mEeX schrieb:

    Tschuldigung für den Spam.

    Kein Problem! 🤡 👍



  • Hey, er ist zurück! 😎

    Bye, TGGC (Der Held bei Dir!)



  • mEeX schrieb:

    Anstatt ihm zu helfen regt sich jeder auf wie dumm dass seine
    Frage ist!! Hilfe hätte er wohl nötiger!! 😋

    ja, hilfe was das programmieren ansich angeht, er ist einfach noch nicht weit genug für ein spiel.

    Und im spiele&grafik wird definitiv nicht das programmieren beigebracht 🙂



  • Und Laguna könnte auch mal wieder reinschaun und antworten.
    War ja schließlich sein Thread.

    Mich würde interressieren ob er mit OpenGL, DirectX oder sonst was proggt.


Anmelden zum Antworten