AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisches Bildererzeugen -und bewegen

Ein Thema von CallOfUnite · begonnen am 26. Apr 2012 · letzter Beitrag vom 27. Apr 2012
Antwort Antwort
Benutzerbild von CallOfUnite
CallOfUnite

Registriert seit: 30. Jan 2012
Ort: Welt, bevorzugt Pokemon Island wie mein Vater zu sagen pflegte
33 Beiträge
 
Delphi 2005 Personal
 
#1

Dynamisches Bildererzeugen -und bewegen

  Alt 26. Apr 2012, 18:34
Hallo Leute
Ich bin grade an nem persönliche Just4Fun Project dran
will nen retro space invaders basteln... So nega simpel wie nur notwendig
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
  Mit Zitat antworten Zitat
freeway

Registriert seit: 11. Jul 2009
57 Beiträge
 
Delphi XE Professional
 
#2

AW: Dynamisches Bildererzeugen -und bewegen

  Alt 26. Apr 2012, 20:21
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
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Dynamisches Bildererzeugen -und bewegen

  Alt 27. Apr 2012, 08:32
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;
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Dynamisches Bildererzeugen -und bewegen

  Alt 27. Apr 2012, 08:48
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 .
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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