Aloha,
tut mir Leid das ich euch schon wieder frage, ich hoffe es ist nicht wieder so eine dumme wie letztes mal, doch an diesem Problem sitze ich schon länger und verstehe einfach nicht, warum es bei mir nicht funktioniert.
Ich hoffe auch das ihr das Thema Kollisionen nicht schon zu leid seid, aber nun zum eigentlichen Punkt.
Ich wollte eigentlich zuerst einmal ein ganz einfaches Grundprogramm Pong schreiben und dieses später eventuell ein wenig aufpeppen.
Schläger lassen sich bewegen, Ball bewegt sich und prallt an den Rändern ab, nur will er nicht vom Schläger abprallen.
Ich habe es mir so gedacht:
Ich reduziere den Ball auf vier Punkte, ungefähr so:
Code:
___1___
_/___\_
2_____3
_\___/_
___4___
Die Zahlen markieren dabei die Punkte des Balls. Jetzt kommt das rechnintensive, wo ich dachte, dass es zwar nicht elegant, aber so gelöst ist, dass es auf jednfall klappt (was ja leider ein Irrtum ist). Ich lasse eine Schleife durchlaufen, in der ich jeden Punkt des Quadrats mit meinetwegen zuerst den Punkt 1 vergleiche. Ist dies der Fall, so bekommt die Variable BallBewegung ein neues Vorzeichen (BallBewegung wird jedesmal zu der aktuellen BallPosition addiert, so kommt die Bewegung zustande). Nun scheitert mein Code leider schon sehr früh, denn laut Debugger kommt es nie vor, dass die Punkte identisch sind. Die Kollsionsfunktion sieht bei mir so aus:
Wie gesagt kommt es aber nie dazu, dass eine Zele in der result := 1 oder result := 2 steht bearbeitet wird (weil seltsamer weise die Bedingung also nie erfüllt wird). Den Schlaeger Zeichne ich ganz normal so:
Code:
procedure ZeichneSchlaeger(x, y, hoehe, breite : integer);
Der Schlaeger nimmt also die Position des Mauszeigers ein.
Da ich im ortho Modus bin und die Aufloesung 800*600 nutze, erhalte ich mit CursorPos nicht die Position die ich will, also Teile ich "Meine" Aufloesung durch die von Windows und erhalte so den Aufloesungsfaktor (getestet, klappt auch wunderbar).
So, ich hoffe ich habe mein Problem nicht zu ausführlich erläutert und hoffe auch, dass ihr mr evtl. weiterhelfen könnt.
Mitglieder in diesem Forum: 0 Mitglieder und 27 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.