Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi kleine Bilder einfügen und bewegen (https://www.delphipraxis.net/112198-kleine-bilder-einfuegen-und-bewegen.html)

Cloudwalk 16. Apr 2008 16:12


kleine Bilder einfügen und bewegen
 
hallo ich möchte in mein spiel die Figuren als Bilddateien einfügen und dann später auch bewegen können, wie mache ich sowas? als Untergrund habe ich ne Image fläche.

MfG Cloudwalk

lbccaleb 16. Apr 2008 17:00

Re: kleine Bilder einfügen und bewegen
 
du kannst zb auf der image komponente eine neue image komponente erstellen und in dieser das bild laden, dann kannst du zb mit einem timer die image komponente so bewegen:

image1.left := 1; //hier kannst du es auf der x achse verschieben
image1.top := 1; //hiermit kannst du die image komponente auf der y achse verschieben


ich sage aber gleich dazu:

dieses ist nur eine einfache methode, nicht die wirklich perfekte, wen du sowas machen willst musst du mit opengl arbeiten oder mit gdi!!!

Cloudwalk 16. Apr 2008 17:05

Re: kleine Bilder einfügen und bewegen
 
ja sowas reicht schon. kann ich auch ein Image in Ebenen unterteilen sodass zumbeispiel die geladene grafik(spielfigur) priorität 1, eine Karte Priorität 2, und darunter sozusagen eine Pixelfläche die aus schwarz und weiß(zur abfrage von mauern etc.) die die Priorität 3 hat???

MfG Cloudwalk :)

lbccaleb 16. Apr 2008 17:43

Re: kleine Bilder einfügen und bewegen
 
nein das geht nicht, zumindest nicht mit den standartkomponenten, ob es eine komponete gibt, die sowas unterstützt kann ich dir auch nicht genau sagen, mir fällt jedenfalls keine ein...


vllt hiflt dir das hier auch ein wenig weiter:

3 bilder übereinander

ansonnst kannst du auch mal hier das forum nach gdi + bilder und so durchsuchen... da wirst du bestimmt auch fündig ;-)

shmia 16. Apr 2008 17:44

Re: kleine Bilder einfügen und bewegen
 
Zitat:

Zitat von Cloudwalk
ja sowas reicht schon. kann ich auch ein Image in Ebenen unterteilen sodass zumbeispiel die geladene grafik(spielfigur) priorität 1, eine Karte Priorität 2, und darunter sozusagen eine Pixelfläche die aus schwarz und weiß(zur abfrage von mauern etc.) die die Priorität 3 hat???

Nein, dazu müsste man ganz anderst vorgehen.

1.) du hast dein Spielewelt abgebildet in ein zweidimensionales Array (stellt dir einfach mal ein Schachspiel vor)
2.) auf jedem Feld sitzt eine Spielfigur, eine Wand, ein Bombe oder was auch immer. Jedes Ding hat eine bestimmte Nummer
3.) mit einer PaintBox wird dieses Array abgebildet:
Delphi-Quellcode:
procedure TForm1.ZeichneSpielfeld
begin
for x:=0 to 9 do
  for x:=0 to 9 do
  begin
    case spiel[x,y] of
      1: PaintMauer(x*10, y*,10); // Mauerstück hat 10 * 10 Pixel
      2: PaintBombe(x*10, y*,10);

     -1: PaintBackground(x*10, y*,10);
    end;
   end;
end;
Diese Prozedur wird aus dem Event OnPaint der PaintBox aufgerufen:
Delphi-Quellcode:
procedure Tform1.Paintbox1Paint();
begin
   ZeichneSpielfeld;
end;
4.) immer wenn sich etwas in deinem Spielfeld geändert hat, wird Paintbox.Invalidate; aufgerufen

Cloudwalk 16. Apr 2008 17:57

Re: kleine Bilder einfügen und bewegen
 
für was sind die for schleifen?

Cloudwalk 16. Apr 2008 18:00

Re: kleine Bilder einfügen und bewegen
 
und wie würde ich die Figuren dann bewegen?

shmia 16. Apr 2008 18:07

Re: kleine Bilder einfügen und bewegen
 
Zitat:

Zitat von Cloudwalk
für was sind die for schleifen?

Na die Schleifen gehen über das gesamte Spielfeldarray (Spiel:array[0..9,0..9] of Integer) zeichnen jedes einzelne Teil davon.
Etwa so wie ein Elektronenstrahl die Bildröhre abtastet.

Bewegen der Figuren:
Delphi-Quellcode:
  xpos := 5; // Position der Spielfig
  ypos := 6;

  // bisherige Position löschen
  spiel[xpos,ypos] := -1; // Hintergrund

  // bewegen
  ypos := ypos+1;
 
  if spiel[xpos,ypos] = 2 then // Bombenabfrage
    Bumm;

  // neue Position setzen
  spiel[xpos,ypos] := 42; // 42 bedeutet Spielfigur

Cloudwalk 16. Apr 2008 18:10

Re: kleine Bilder einfügen und bewegen
 
also wär das dann so ein koordinatensystem wobei 9*9 die Spielfeldgröße wäre?

Cloudwalk 16. Apr 2008 18:13

Re: kleine Bilder einfügen und bewegen
 
ich blicke ehrlich gesagt nicht durch, da ich nur anfänger bin :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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