Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Simulation von Feuerwerk in einem TImage (https://www.delphipraxis.net/173576-simulation-von-feuerwerk-einem-timage.html)

DDZ 5. Mär 2013 11:40

Simulation von Feuerwerk in einem TImage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Ich habe vor kurzem hier nach der Feuerwerkssimulation gefragt, weil ich sie für mein eigenes Programm verwenden möchte. Ich bräuchte allerdings eine angepasste Version, welche das Feuerwerk auf ein TImage zeichnet. (Image2 in meinem Fall)

Allerdings bin ich im Moment irgendwie zu blöd, den Quellcode anzupassen. Könnt ihr mir helfen, ich seh da irgendwie gar kein Licht. ICh bin wirklich für jeden Anpassungshinweis dankbar.

Im Anhang findet ihr die Version von Aphton

Hier der Link zum ursprünglichen Thema
http://www.delphipraxis.net/126606-%...uerwerk-3.html

Alle, die hier wesentlich zur Umsetzung meines Programms beitragen und mir den Quellcode zur Verfügung stellen, werden in den Credits genannt.

LG

DDZ

Bummi 5. Mär 2013 11:51

AW: Simulation von Feuerwerk in einem TImage
 
Mir ist nicht ganz klar was Du auf dem Image sehen willst, da ja alle paar ms neu gezeichnet wird...
so könnte die Stelle aussehen die Du nach Wunsch anpassen müsstest ...
Delphi-Quellcode:

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Integer;
begin
  for i := Particles.Count - 1 downto 0 do TParticle(Particles[i]).Update;
  for i := 0 to Rockets.Count - 1 do TRocket(Rockets[i]).Update;
  for i := 0 to Particles.Count - 1 do TParticle(Particles[i]).Render(Image1.Canvas);
  for i := 0 to Rockets.Count - 1 do TRocket(Rockets[i]).Render(Image1.Canvas);
end;

DDZ 5. Mär 2013 12:04

AW: Simulation von Feuerwerk in einem TImage
 
Auf dem Image will ich die Raketen sehen. Das dort anzupassen habe ich schon versucht. Aber stimmt ich muss überall wo canvas steht, den Quellcode auf image2.canvas ändern

Aber das Problem ist doch dass das Fenster TForm1 niemals erzeugt wird.
Oder nicht?

Bummi 5. Mär 2013 12:40

AW: Simulation von Feuerwerk in einem TImage
 
Wieso, Render bekommt doch dankenswerter Weise das Zielcanvas mit übergeben.
kommentiere mal folgendes aus
Delphi-Quellcode:
//  ClientWidth := Screen.Width;
//  ClientHeight := Screen.Height;
und lege das Image alClient auf das Form ... dann siehst Du was passiert, ich fürchte nur Du wirst mit dem Ergebnis nicht viel anfangen können, da das Canvas in einem Bitmap persistiert wird und jeder Teil der Animation über den anderen gemalt wird, da ich nicht weiß wie Deine Vorstellung über das Ergebnis aussehen soll kann ich Dir nicht raten was man anpassen sollte/könnte.

DDZ 7. Mär 2013 06:40

AW: Simulation von Feuerwerk in einem TImage
 
Vielen Dank für deine Hilfe, leider bin ich aber immernoch nicht weiter.

Wie genau funktioniert das mit dem alClient? Die Delphi Hilfe war dazu leider nicht sehr aufschlussreich.

Hier nochmal das was ich haben möchte:

Ich habe bereits eine Form erstellt(mit Delphi per Drag and Drop), darauf befindet sich bereits ein TImage mit dem Namen Image2 und auf dessen Canvas sollen die Raketen gezeichnet werden. Das heißt der untere Rand des Bildschirm an dem die Raketen normalerweise starten entspricht dem unteren Rand des Images. Der ober Rand entspricht also dem oberen Rand des Images. Die Breite wurde festgelegt und entspricht auch der des Images und nicht des Bildschirmes. Auf dem Image müssten sie die Raketen genauso bewegen wie auf der Canvas eines normalen Fensters.

Achja vielleicht ist das noch wichtig: Ich arbeite in Delphi 5

Bummi 7. Mär 2013 07:05

AW: Simulation von Feuerwerk in einem TImage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie gesagt, die Idee mit dem Image wird Dich nicht da hin bringen wo Du hin willst. So sähe das aus:

DDZ 7. Mär 2013 07:19

AW: Simulation von Feuerwerk in einem TImage
 
Warum? Wenn ich das Zeichnen ebenfalls auf FormPaint lege? Dann müsste sich das doch richtig aktualisieren? Bzw. ich müsste jedesmal die Hintergrundfarbe drüber zeichnen? Oder nicht. Es muss doch irgendwie gehen, dass man ein Feuerwerk im Image hat.

Alternativ kann ich auch einen anderen Bestandteil von Delphi nehmen, wenn ich da irgendwie das Feuerwerk reinkriege?

Bummi 7. Mär 2013 07:42

AW: Simulation von Feuerwerk in einem TImage
 
Eine PaintBox und ein Zeichnen im OnPaint, mit einem Invalidate im Timer (Parent doublebuffered) dürfte am IMHO ehesten Deinen Wünschen entsprechen.

DDZ 7. Mär 2013 07:50

AW: Simulation von Feuerwerk in einem TImage
 
Programmier mal bitte, bitte nur ein Teilstück. Ich sehe hier gerade überhaupt kein Licht mehr. Ich bin am verzweifeln :shock:

Bummi 7. Mär 2013 10:10

AW: Simulation von Feuerwerk in einem TImage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zum weiterbasteln ....


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Seite 1 von 2  1 2      

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