![]() |
Brauche HILFE beim PingPong-Spiel!!!!
hallo Leute!!
ich hab informatik in der Schule und nun sollen wir ein eigenes PingPong-Spiel erstellen. ich hab nur leider keine ahnung,wie ich das anstellen soll!!!!! :? :bounce2: !!!!BITTE HELFT MIR!!!! :bounce2: ich brauche einfach nur anhaltspunkte.wie bekomme ich zum Beispiel einen ball dort hinein?!?! einen "Torwart" (button am oberen rand) hab ich schon,aber wie gehts weiter?? :bounce2: !!!!BITTE HELFT MIR!!!! :bounce2: also,wenn ihr eine ahnung davon habt,dann schreibt mir bitte!und bitte schön ausführlich,falls ihr die zeit dazu habt!(davon hängt meine note ab!!) also hoffe es meldet sich bald jemand! DANKE schon mal im vorraus! euer LAURIENCHEN |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Fragen / Anregungen zur DP" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Darf ich kurz zusammenfassen:
- Du hast Informatik in der Schule - keinen Bock darauf und 0 Ahnung - nie aufgepasst und lieber über Kosmetik geratscht - willst trotzdem eine gute Note kommt das hin? Aber jetzt mal im Ernst. Wenn du dir auf diesem Wege ausführliche Hilfe holen willst, wäre es das Beste, die ausfühliche Aufgabenstellung bekannt zu geben. Denn auch ein, oberflächlich betrachtet, einfach aussehendes Ping-Pong kann man mit unterschiedlichen Schwierigkeiten realisieren. Vor kurzem gab es hier einen in der gleichen Situation, der hatte sich aber vorher schon weit mehr eigene Gedanken gemacht und hat die erwünschte Hilfe und seine gute Note dann wohl auch bekommen. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
:hi:
Ich hab mir mal zuerst die Freiheit genommen... hallo Leute!! ich hab informatik in der Schule und nun sollen wir ein eigenes PingPong-Spiel erstellen. ich hab nur leider keine ahnung,wie ich das anstellen soll! ... also,wenn ihr eine ahnung davon habt,dann schreibt mir bitte!und bitte schön ausführlich,falls ihr die zeit dazu habt!(davon hängt meine note ab!) ... Ich nehm mal an, ihr seid nicht ganz unvorbereitet auf diese Aufgabe hingeleitet worden ^^, ihr habt doch sicher schon solche Sachen im Unterricht gemacht. Was hast Du schon [steht ja teils da, aber damit kann ich zumindest nicht viel anfangen]... was hast Du selber für Ideen? Und wo kommst Du da nicht weiter? Da es Deine Hausaufgaben sind, muss die Arbeit von Dir geleistet werden :) ... Wenn Du genauere Angaben machst, was Du schon hast, und wo es dann genau fehlt, dann wird sich bestimmt einer finden, der Dir die Richtung weist :) mfg Tobias |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Also wir haben das ganze damals mit 3 Panels (2x Schläger, 1x Eckiger Ball ^^) und einem Timer (Ball+Schläger bewegen) gemacht.
Zum Abfragen der Tasten nimm dann einfach das OnKeyDown bzw OnKeyUp Ereignis des Formulars. EDIT: Ich hoffe das hilft dir als Ansatz. Fang am besten erst mal an den Ball per Timer zu bewegen und vom Rand abprallen zu lassen. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
ich würde statt nem eckigen ball einfach nen shape nemen.
Delphi-Quellcode:
das ist noch der code für die ballbewegung ohne schläger abrall. :mrgreen:
//Bestimmung der x- und yposition
xpos:= xpos+xspeed*vx; ypos:= ypos+yspeed*vy; //Beim Rand Anstoß if (xpos<0) then begin xspeed:= 1; xpos:= 0; punkte2:= punkte2+1; end; if (xpos+ball.width>=form1.ClientWidth) then begin xspeed:= -1; xpos:= form1.clientwidth-ball.width; punkte1:= punkte1+1; end; if (ypos<0) then begin yspeed:= 1; ypos:= 0; end; if (ypos+ball.height>=form1.Clientheight) then begin yspeed:= -1; ypos:= form1.clientheight-ball.height; end; //Bestimmung der Ballposition ball.top:= ypos; ball.left:= xpos; |
Brauche HILFE beim PingPong-Spiel!!!!
Also...wir haben in der schule schon mit delphi gearbeitet und ich bin auch ganz gut damit zurecht gekommen.bin also nicht ahnungslos und faul! :zwinker:
ich bin jetzt schon soweit,dass ich ein kleines eckiges edit fenster habe,dass auch an allen ecken abprallt und ich habe einen button,den ich mit der maus am oberen rand bewegen kann. -frage zum ball: kann man den auch rund machen? -frage zum button: wie schaffe ich es,dass das edit feld am button abprallt,wie am rand? -dann sollen wir noch erreichen,dass die tore gezählt werden... falls ihr mir diese fragen beantworten könnt,wäre das echt klasse!! :zwinker: Euer LAURIENCHEN |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Du bist gut damit zurrecht gekommen ... testen wir das mal:
Du nimmst zum Zählen der Tore eine integer-Variable und erhöhst diese immer im passenden Augenblick um 1. Und nehme am besten nicht mit i := i + 1. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
[edit] Das eigentliche hab ich glatt vergessen :mrgreen: Zitat:
Zitat:
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
inc ist aber besser und übersichtlicher.
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
...:cat:... P.S.: Überdenke bitte Deinen Ton (vorletzter Deiner Beiträge in diesem Thread!) |
Re: Brauche HILFE beim PingPong-Spiel!!!!
inc(i); dec(i);
hält den Code aber kleiner. Und außerdem ist inc oder dec doch ein einfacher Befehl. Wenn man es schafft viele andere zu lernen, ist das meiner Meinung kein großes Problem. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Wird, wie von sakura schon gesagt, wohl durch Compiler Magic und ähnliches aufs absolut Gleiche rauskommen im Kompilat (?)...
MfG Florian :hi: |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Ja das ist schon klar, aber es ist gut für lange Codes, sonst verliert man ja noch mehr die Übersicht.
Nun zum Thema: Was hast du jetzt schon alles ? - Einen Schläger - Ein Spielfeld - Eine Kollisionserkennung (Hast du da schon eine Tolleranz eingebaut ?) Dir fehlt: - Ein Ball Ich hoffe ich habe alles zusammen. Hier der Ball: - Setze ein Shape auf die Form - Gehe in den Objektsinspector und stelle dort unter Shape stCircle ein - Die Farben die du brauchst kannst du dir dann unter Pen (Rahmen) und Brush (Füllung) jeweils bei Color einstellen. - Vielleicht noch die größe anpassen und fertig. Hast du bei der Kollisionserkennung schon eine Tolleranz (Tolleranz = Je nachdem wie der Ball aufschlägt prallt er auch wieder ab) ? So nun stellst du bei der Form noch KeyPreview auf True und setzt im OnKeyDown-Ereigniss (auch unter Form zu finden) folgenden Code ein, um abzufragen, ob eine Taste gedrückt wurde:
Delphi-Quellcode:
Bei up fügst du dann noch die Panel Bewegeung des Spielers ein, in etwa so (ungetestet):
if Key = VK_UP then // Pfeiltaste hoch
begin end; if Key = VK_DOWN then // Pfeiltaste unten bzw. runter begin end;
Delphi-Quellcode:
Ich würde den Gegner so programmieren:
if Key = VK_UP then // Pfeiltaste hoch
begin if Panel1.Top <= 0 then // Überprüfen, ob der Panel am oberen Fensterrand angekommen ist begin Panel1.Top := Panel1.Top + 2; end; end; if Key = VK_DOWN then // Pfeiltaste unten bzw. runter begin if Panel1.Top >= 100 then // Überprüfen, ob der Panel am unteren Fensterrand angekommen ist begin Panel1.Top := Panel1.Top - 2; end; end; - Ballhöhe in einer Variable speichern - in einem Timer sagen, dass der Gegner-Schläger sich in Richtung der Ballhöhe bewegen soll, ich würde nicht gerade ein niedriges Timer-Interval nehmen. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
Eine property (wie z.B. Panel1.Top) kann man eh nicht mit inc bzw. dec bearbeiten. und... der obere Fensterrand ist doch wohl eher bei 0 als bei 100. Aber es wird schon.... ;-) |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Hallo
Also ich würde zum testen ob das Panel am oberen Rand ist das machen:
Delphi-Quellcode:
und für den unteren Rand
if Panel.Top <= 10 then ... // Setz anstatt 10 den Wert ein wo bei dir die obere Grenze sein soll
Delphi-Quellcode:
Gruß
if Panel.Top + Panel.Height >= 100 then ... // Setz anstatt 100 den Wert ein wo bei dir die untere Grenze sein soll
MasterDG |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Danke, ich änder das dann noch ab. Jetzt hab ich tatsächlich oben mit unten vertauscht :oops:
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Editfenster als Schläger und Panels und Buttons als Bälle? Dürft ihr kein Canvas oder DirectX benutzen?
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
Es ist IMHO schon in Ordnung, Delphi-Komponenten für solche Zwecke zu "missbrauchen". Nur sollte man da versuchen, auf die richtigen zu verwenden :zwinker: |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
Code:
var
a: Integer; begin Dec(a, 2); end; |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
|
Brauche HILFE beim PingPong-Spiel!!!!
WOW!!!ihr seit echt hilfsbereit! :thumb:
ich komme echt gut voran!!DANKE,DANKE,DANKE!!!! :hello: nur ein problem hab ich jetzt noch. ich muss es irgendwie schaffen,dass der ball vom button (torwart) abprallt . ??? und das mit dem punkte zählen war noch nicht ausführlich genug erklärt... :oops: :oops: :oops: Freu mich auf rückmeldungen! euer LAURIENCHEN |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Hallo
Also erst mal zum Punkte zählen. Du kannst ja abfragen ob der Ball auf der linken oder rechten Seite einen bestimmten Wert über- bzw unterschritten hat. Als Werte sollte man natürlich die Kanten der Schläger benutzen. Also in etwa so:
Delphi-Quellcode:
Für den rechten Schläger musste des halt selber machen.
//linker Schläger
if Ball.Left <= 34 then begin inc(torespieler1); reset;//Hier musste halt alles wieder zurücksetzen end; Also ich würde das mit dem Abprallen des Schlägers so machen(evt. hat ja jemand ne bessere Möglichkeit)
Delphi-Quellcode:
Hoffe das hilft dir weiter. :-D
//linker Schläger
if (Ball.Left = 35) and (Ball.Top > Schläger.Top) and (Ball.Top < Schläger.Top + Schläger.Height) then begin //hier halt den Code zum abprallen an einer Kante end; Gruß MasterDG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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