Einzelnen Beitrag anzeigen

arnof

Registriert seit: 25. Apr 2013
1.250 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

AW: Flappy Firemonkey - Spiele mit Delphi XE5

  Alt 4. Mär 2014, 15:29
Ich bin grad dabei den Code noch ein bisschen zu optimieren. Dazu gehört die Positionen von den Pipes in Abhängigkeit der Bildschirmhöhe zu berechnen (bis jetzt liegen die Werte hardgecoded vor). Obwohl die mathematische Aufgabe dahinter nicht wirklich komplex ist, bekomm ich das grad nicht auf die Reihe

Wir haben ein Rohr, das ein bisschen kürzer ist als die "Spielfläche". Das Rohr soll oben und unten so platziert werden, dass in der Mitte ein zufällig großer Raum ist, wo man durchfliegen muss (FlappyBird eben). Die Röhren müssen immer im Sichtbereich sein.
Folgenden Code habe ich mir ausgedacht, macht aber falsche Berechnungen, da die Röhren nicht immer im Sichtbereich sind:
Delphi-Quellcode:
var PipeRange,GapSize: Integer;
    YOff,YMinOff,YMaxOff: Integer;
begin

   PipeRange:= (GamePanelHeight mod PIPE_HEIGHT); // Wie Viel Platz ist verfügbar, um nach oben oder unten zu verschieben
   GapSize:= RandomRange(120,170); // die Lücke zum durchfliegen

   YMinOff:= -PipeRange+Round(GapSize/2);
   YMaxOff:= GamePanelHeight-Round(GapSize/2);
   YOff:= RandomRange(YMinOff,YMaxOff);

   FPipeAPos:= (YOff-PIPE_HEIGHT)-Round(GapSize/2)+PipeRange;
   FPipeBPos:= (YOff-PipeRange)+Round(GapSize/2);
   {...}
Deine Änderungen hat es ja bis in die höchsten blogs geschafft
  Mit Zitat antworten Zitat