Einzelnen Beitrag anzeigen

Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#13

AW: Flappy Firemonkey - Spiele mit Delphi XE5

  Alt 1. Mär 2014, 19:20
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);
   {...}

Geändert von Crocotronic ( 1. Mär 2014 um 23:47 Uhr)
  Mit Zitat antworten Zitat