Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Dynamisches Bildererzeugen -und bewegen (https://www.delphipraxis.net/167943-dynamisches-bildererzeugen-und-bewegen.html)

CallOfUnite 26. Apr 2012 18:34

Dynamisches Bildererzeugen -und bewegen
 
Hallo Leute :)
Ich bin grade an nem persönliche Just4Fun Project dran :)
will nen retro space invaders basteln... So nega simpel wie nur notwendig :P
Ich habs theoretisch fertig, praktisch hakt es an einer stelle, ich erkläre das mal:
(Ich habe 2 Methoden getestet)
Erste Methode:
Ich habe eine Algorythmik geschrieben die auf einen Interval eines Timers hin Randomisiert Bilder initialisiert und erstellt, sozusagen entsteht alle 2 sec. ein neues bild auf einer festgelegten höhe, jedeoch in einer per Random generierten Position, diese Bilder, die Meteore darstellen, sollten sich nach unten bewegen, natürlich nicht alle gleichzeitig da die aufgabe des spielers es ist eine zeitperiode zu überleben und man zwischen den Meteoren herumnavigieren soll mit seinem Raumschiff(Was super funzt) jedoch was nicht klappt ist es das sich die MEteore bei dieser methode nach unten bewegen, da auch der name des Bildes dynamisch erzeugt wird, ist es halt mir mit meiner kenntnis unmöglich das so hinzubiegen das ich eine methodik habe die wie die namen (die so gebastelt sind : 'IMG' + IntToStr(a), wobei a immer +1 zählt, bei 1 angefangen (d.h. das 10 bild heisst per example IMG11)).
ja also wie gesagt bräuchte ich ne methode die die dinger nach unten bewegen würde

Zweite Methode:
Die bilder sind oben aufgereiht und Visible=false
nach und nach werden sie sichtbar und sollen in versetztem abstand voneinander nach unten 'fallen'
problem ist das das erste nach unten fällt und und wenn das nächste loslegen soll wrden alle sichtbar und fallen runter...ich bin jetzt am überlegen und wollte ma fragen ob jemand hilfe hat...wenn ihr irgenwie mit funktionen kommt - hab ich dran gedacht aber ich kann das noch nicht...ich versuche mir das jetzt ma anzueignen und mir nen delphi buch zu bestellen...also kennt da jemand eins? und wenn jemand ne antwort auf das alles parat hat wär auch nice


MfG CallOfUnite

freeway 26. Apr 2012 20:21

AW: Dynamisches Bildererzeugen -und bewegen
 
das Bild wird zwar dynamisch erzeugt aber über seinen Namen kannst du es einzeln ansprechen
so in der Art:
IMG2.top + 1 / IMG2.top + 1 etc

Blup 27. Apr 2012 08:32

AW: Dynamisches Bildererzeugen -und bewegen
 
Nur mal so als Lösungsansatz:
Delphi-Quellcode:
type
  TMyImage = class(TImage)
  public
    StartTime: TDateTime;
    Speed: Integer;
  end;

var
  FImages: TList;

procedure TForm1.NewImage;
var
  Img: TMyImage;
begin
  Img := TMyImage.Create(Self);
  Img.Parent := Self;
  Img.StartTime := Now + 5;
  Img.Speed    := 1 + Random(3);
//  Img.Picture := ...
//  Img.TopLeft := FindeFreienPlatz;
  FImages.Add(Img);
end;

procedure TForm1.DeleteImage(Img: TMyImage);
begin
  FImages.Extract(Img);
  Img.Free;
end;

procedure TForm1.MoveImages;
var
  i: Integer;
  Img: TMyImage;
begin
  for i := FImages.Count - 1 downto 0 do
  begin
    Img := FImages[i];
    if Img.StartTime <= Now then
    begin
      Img.Top := Img.Top +  Img.Speed;
      if Image.Top > ClientHeight then
        DeleteImage(Img);
    end;
  end;
end;

Bummi 27. Apr 2012 08:48

AW: Dynamisches Bildererzeugen -und bewegen
 
Oder Du machst es gleich richtig, verwaltest Deine Meteore in einem Array mit Position und Geschwindigkeit.
Im Timer rufst Du ein Invalidate einer Paintbox auf, in der Paint Du die Meteore und Dein Raumschiff malst .


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz