Wieso macht hat mein Auto bei 45° so nen komischen Sprung?



  • gebe nman recht. und unsinnige beschuldigungen müssen nicht sein.

    und nun kommt wieder aufs thema zurück...



  • Speicher erstmal alle Variabeln als float, dann ist es chonmal besser

    Und multipliziere die Bewegung meinetwegen mit 10 oder sonstwas 🙂 dann ist mehr als 0.5 Pixel



  • HI!
    Die Lösung war einfacher als ich dachte, jedoch verstehe ich nicht ganz wie das Problem DirectX löst.
    Die Lösung ist ganz einfach:

    _pos.x = _pos.x + cosf(fRotation);
    _pos.y = _pos.y - sinf(fRotation/Grad);

    wie es in der Art auch schon gesagt wurde. Das funktioniert auch perfekt, jedoch wundert es mich. Wie ich mitgekriegt habe ist das D3DXVECTOR2 Struct bestehend aus 2 floats, nicht aus 2 ints wie ich annahm. Schön und gut, jedoch wie macht das DX? Angenommen mein Auto steht auf 3° Dann heißt das ja COS(3) nach rechts pro SIN(3) nach oben..is ja klar. Ich addiere den Wert ja immer zu dem floatwert des structs. Jedoch wenn ich das selbst versuche (ohne dieses struct) und ich sage ich will 1 nach oben bei 3 nach rechts, dann wander ich die 3 nach rechts und 1 nach oben, jedoch sieht das ein bisschen abgehakt aus wenn das Auto plötzlich 1 Pixel weiter oben ist, jedoch ist bei DX ein völlig flüssiger Übergang! Man merkt überhaupt nicht wie das Auto nach oben geht..das ist doch nicht möglich, da ein Pixel doch relativ groß ist, wo eine Bewegung nach oben um einen Pixel doch schon auffällt. Um 0.5 Pixel nach oben ist ja nicht möglich. Ich hoffe ihr könnt euch vorstellen was ich meine 🙂

    zum 2. Thema hier:

    Ich habe mir schon oft in Sachen Programmieren Ziele gesetzt. Wie ich mit WINAPI angefangen habe und nichts kapiert habe wurde ich hier auch fertig gemacht, doch ich habe es geschafft und aufgrund der jahrelangen Erfahrung bin ich darin schon richtig gut 🙂 Jetzt brauche ich eine neue Herausforderung! Durch eure Hilfen verstehe ich zu mindest den für DX notwendigen Teil der Trigonometrie schon... Auch Assembler habe ich mir beibringen können und habe auch wirklich kleine kaum den Namen verdienende OSes gecodet und bin immernoch dabei. In den Protected Mode habe ich mich auch eingearbeitet. Bei der Anfrage nach Hilfe kam von 30% der Leute hier nur ein Lachen und meinten ebenfalls das Ziel sei zu hoch gesteckt...FDC + HDD Treiber für den Protected Mode sind doch schon viel, was man erreicht hat. Somit spart euch bitte die heruntermachenden Comments (nicht nur bei mir).

    Die Art wie es TGGC gesagt hat war schon von Grund an sehr agressiv. "Am besten: STRG ALT + ENTF" - solche Comments sind wirklich überflüssig.

    SO!

    kevin



  • Surkevins schrieb:

    "Am besten: STRG ALT + ENTF" - solche Comments sind wirklich überflüssig.

    Lern lesen.

    Ich bin der Meistgehasste, weil mich die meisten hassen...

    Bye, TGGC


  • Mod

    😕

    y+=sin(3) und x+=cos(3)
    sind ganz was anderes als
    y+=1 und x+=3

    das hat nichts mit directX zu tun, das ist nur mathe, wenn du pro bild sin(3) aufaddierst, also 0.1411 (ist ja in RAD!!!), dann kommst du nur alle 7 bilder einen pixel vorran. das ist als nicht wirklich verwunderlich dass das flüssig ausschaut.

    du scheinst das ganz nicht wirklich zu verstehen
    die coordinaten sind in float, also ist es möglich deinen wagen 0.5 hoch zu bewegen, bei der darstellung wird dann auf ganze zahlen abgerundet, aber das ist ja egal für die bewegung deines wagens, denn es sollte ja auch fahren können wenn man nichts sieht oder antialiasing an hat (wo dann subpixel genaue bewegungen möglich wären)

    rapso->greetS();



  • Doch ich versteh das schon, jedoch war es jetzt einfacher für mich ein Beispiel 1 / 3 zu nehmen als jetzt die COS / SIN auszurechnen, nicht falsch verstehen! Mhm also sobald der Wert über 0.49 geht rutscht er den ganzen Pixel hoch. Komisch, als ich das so in der Art programmiert habe sah es etwas abgehackt aus, scheint irgendwo etwas kleines falsch zu sein, aber egal jetzt wo es funktioniert.

    TGGC - du bist jetzt ungefähr 23, scheinst mir aber trotzdem noch sehr kindisch (ich möchte nicht sagen dass ich sonderlich erwachsen bin). Den Postings der anderen entnehme ich, dass du dich öfters zum falschen Zeitpunkt falsch äußerst.....lass es doch einfach - möchte hier auch nicht streiten

    Na ich danke euch (fast) allen!! Wird sicher nicht mein letztes Posting während diesem Projekt sein 🙂

    Kevin



  • Surkevins schrieb:

    Den Postings der anderen entnehme ich, dass du dich öfters zum falschen Zeitpunkt falsch äußerst

    Ich äussere nie etwas Falsches. Wie kannst du, der meine Postings nicht mal gründlich liest, es dir erlauben, mich zu beurteilen?

    Bye, TGGC



  • OK, ich dachte ja immer, TGGC wäre ein netter Forenuser...
    Aber, wie kann man nur hinschreiben: STR A , Entf
    Das ist total gemein, und so schlimm ist es eigetnlich nie, dass man alles markieren muss und dann entf...
    Du solltest echt manchmal überlegen, was du schreibst, zw. wie du es schreibst... wenn er nun mal noch nicht sin in der Shcuikle hatte, was soll er denn machen? Durch probieren lernt man s am schnellsten, denk ich



  • Ich schlage vor, den Thread zu schliessen... ist ja nicht mehr auszuhalten!



  • und das mach ich jetzt auch...

    selbst schuld!
    -> closed


Anmelden zum Antworten