Ergebnis 1 bis 6 von 6

Thema: Einfaches Ping Pong mit Delphi (mSum)--> Need Help!

  1. #1

    Einfaches Ping Pong mit Delphi (mSum)--> Need Help!

    Hallo!
    Wir müssn in info ne art "facharbeit" erledigen .. naja Delphi is nich wirklich meine stärke.
    Un zwar möchte ich das Spiel Pong erstellen jedoch habe ich Probleme mit dem abprallen von dem Schläger. Vom Spielfeld klappts.
    Kann mir mal bitte jemand sagen was ich falsch gemacht hab und mir das bitte mal erklären?

    Meine Pong Unit



    Hauptprogramm


    Schläger



    Vielen dank im vorraus!

  2. #2
    Es wäre vielleicht hilfreich, wenn du das Problem etwas mehr eingrenzen könntest. Ich zumindest hab keine Lust, mir erstmal einen Haufen Code zu verstehen, um dir helfen zu können

  3. #3
    Oh das hab ich ganz vergessen sry
    Also mein Problem ist, dass der Ball (Pong) nicht von dem Schläger abprallt.
    Es ist als befände sich ein unsichtbares Spielfeld neben dem Schläger in dem sich der Ball bewegt.

    Außerdem bewegt sich der ball nur wenn der schläger auf gleicher höhe wie der Pong befindet.

    (Also Unit Pong
    Pong.rolle
    und Pong.Wandabprall)

  4. #4
    Wenn deine Funktion flexibel genug ist, tausche den Anweisungsblock "procedure Pong.Wandabprall; begin; [...] end;" mit Folgendem aus:

    Code:
    if self.hPosition>= kenntSpielfeld.rechterRand-zGroesse-zGeschwindigkeit
    then self.dreheBis(180-self.winkel);
    
    if self.hPosition<= kenntSpielfeld.linkerRand+zGroesse+zGeschwindigkeit
    then self.dreheBis(180-self.winkel);
    
    if self.vPosition>= kenntSpielfeld.untererRand-zGroesse-zGeschwindigkeit
    then self.dreheBis(-self.winkel);
    
    if self.vPosition<= kenntSpielfeld.obererRand+zGroesse+zGeschwindigkeit
    then self.dreheBis(-self.winkel);
    
    if self.hPosition<= kenntSchlaeger.rechterRand+zGroesse+zGeschwindigkeit
    then self.dreheBis(180-self.winkel);
    
    if self.hPosition>= kenntSchlaeger.linkerRand-zGroesse-zGeschwindigkeit
    then self.dreheBis(180-self.winkel);
    
    if self.vPosition<= kenntSchlaeger.untererRand+zGroesse+zGeschwindigkeit
    then self.dreheBis(-self.winkel);
    
    if self.vPosition>= kenntSchlaeger.obererRand-zGroesse-zGeschwindigkeit
    then self.dreheBis(-self.winkel);

  5. #5
    versuchs mal damit dass du mit einer if abfragst ob die y koordinate vom ball mit der vom flipper übereinstimmern wenn die x koordinaten von ball und flipper gleich sind (if xkoordinateball=xkoordinateflipper and ykoordinateball ungleich ykoordinateflipper then ballmove.enabled:=false) also lässt der den ball nur weiterlaufen, wenn der ball auch auf gleicher höhe wie der flipper ist, sonst stoppt der ball...
    ist das verständlich??

  6. #6
    Zitat Zitat von mirko schirpe Beitrag anzeigen
    versuchs mal damit dass du mit einer if abfragst ob die y koordinate vom ball mit der vom flipper übereinstimmern wenn die x koordinaten von ball und flipper gleich sind (if xkoordinateball=xkoordinateflipper and ykoordinateball ungleich ykoordinateflipper then ballmove.enabled:=false) also lässt der den ball nur weiterlaufen, wenn der ball auch auf gleicher höhe wie der flipper ist, sonst stoppt der ball...
    ist das verständlich??
    Bitte nicht nekroposten. Der Thread ist drei Jahre alt. Ich glaube nicht, dass deine Antwort noch jemandem hilft.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •