![]() |
2d game:ping-pong
Moin,
Ein Kumpel und ich wollen ein Game auf Delphi basis programmieren. Es handelt sich um ein remake von ping pong^^(jeder kennt es- 2balken eine kugel...ping ...pong) Da wir beide noch am Anfang unserer Delphi Erfahrung stehen, brauchen wir etwas Hilfe... Ein paar Fragen zunächst: -Wie erstellen wir eine x- und y-achse? -Habt ihr vorschläge wie wir den Ball zum bewegen kriegen können und wie die Flugbahn berechnet werden soll?.. ich habe da schon ein paar ideen, aber die sind nicht so einfach umzusetzen... um wissen über delphi zu sammeln lese ich grad dieses buch: Delphi für Kids-(9.kapitel)... und danach werde ich wohl das lesen: 3D Proigrammierung für Kids. denkt ihr dieses buch könnte mir bei meinen Problemme weiter helfen...ich habe nocht nicht wikrlich reingesehn... Das 1. Buch habe ich, wie schon gesagt, angefangen zu lesen und ich finde es gut. Doch es vermittelt mir eher ein Basis/Grundwissen. Sicherlich auch mehr aber ich brauche noch andere bücher um weitrer zukommen. beim den nächsten büchern will ich mein wissen über die datenbanken und über das netzwerk/inet programmierung anreichern. kennt ihr da paar gute? falls ich rechtschreibfehler eingebaut haben sollte tut es mir leid. mir ist grad aufgefallen, dass ich manchmal groß und dann ne zeit lang klein schreiben...liegt alles an der uhrzeit-es ist freitag und kurz vor 0uhr...bin müde :D Achja ...und ich habe noch eine Frage zu einem Buch. Gibt es Bücher für die Konsolenanwendung unter Delphi? |
Re: 2d game:ping-pong
Zitat:
Wenn der Ball an Schlägern abprallt, geht es im Prinzip genauso nur musst du vorher abfragen ob der Ball überhaupt auf den Schläger auftrifft oder ins "Aus" geht.
Code:
Ich kann dir keinen Delphicode geben weil das Programm nicht in Delphi geschrieben ist. Sollte aber keine Probleme machen den Pseudocode zu verstehen, ansonsten --> fragen.
boolean outside=false;
// Kollision mit linker und rechter Wand überprüfen: if (kollision mit linker oder rechter wand) then if (not outside) begin bewegung.x := -bewegung.x; outside:=true; end; if (kollision mit oberer oder unterer wand) then if (not outside) begin bewegung.y := -bewegung.y; outside:=true; end; if (ballposition + ballradius > LinkeWand) AND (ballposition + ballradius < RechteWand) AND (ballposition - ballradius > UntereWand) AND (ballposition - ballradius < ObereWand) then outside:=false; |
Re: 2d game:ping-pong
hmm... kannst du die einzelnene schritte die du mit der if-else abfrage gemacht hast, etwas erklären?
was bedeutet in diesem fall outside? udn wie kriege ich die position des balls raus, bzw woher kriege ich solche x- und y-achsen? und^^...wie lasse ich den ball fliegen... wenn der ball gegen ein hindernis stößt, zb. eine wand, dann soll der einfallswinkel = ausfallswinkel sein, weist du was ich damit meine? |
Re: 2d game:ping-pong
@Tubos:
Bei deinem Code würde es aber keinen Unterschied machen ob man seinen "Schläger" wenn der Ball auftrifft gerade voll nach oben zieht oder man den Schläger einfach so lässt. Beim klassischen Ping-Pong wird das doch berücksichtigt oder irre mich da? :gruebel: |
Re: 2d game:ping-pong
Habt ihr in der Schule schon Geometrien durchgenommen??
Wenn nein, schlage ich vor sich mal mit dem Thema Sinus & Co zu beschäftigen, zusätzlich solltet ihr wissen was Bogenmase sind. Einfach mal in Google suchen! Dannach solltet ihr euch am besten nocheinmal mit den Grundlagen beschäftigen, diese sind bei Spielen äußerst wichtig, siehe ![]() Wenn ihr das gemacht und verstanden habt könnt ihr mit Ping-Pong anfangen. Da es 2D ist würde denke ich würd es Reichen wenn mit folgendem Ansatz anfangt:
Delphi-Quellcode:
Edit:
type
TVec3 = record x: word; y: word; z: word; end; TGObject = class public Position: TVec3; HitPoints: byte; procedure Move(Vektor: TVec3); procedure RegisterObject; procedure Destroy; constructor Create(DPosition: TVec3); end; Ähh...bei euch könnt ihr die z-Achse weglassen! |
Re: 2d game:ping-pong
Zitat:
|
Re: 2d game:ping-pong
bin in der 10kl. wir nehmen grad zufällig sinus/cosinus durch.
das die z-achse (die tiefe) hier nicht nötig ist wohl selbsdtverständlich. Danke für deine Hilfe. Ich befolge mal dienne rat...ich denk trozdem das warnicht der letzte thread von mir ^^ |
Re: 2d game:ping-pong
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ums Prinzip zu begreifen. |
Re: 2d game:ping-pong
Ich kann deine *.exe-Datei nicht ausführen. Bringt er bei mir immer die Windows-Fehlermeldung "Pong.exe hat ein Problem festgestellt und muss beendet werden."!
|
Re: 2d game:ping-pong
:gruebel: den Fehler hatte ich noch nie, hast du es entpackt ?
Auch aus der Rar läufts. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz