Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2D] Auf "Objekt" klicken registrieren (https://www.delphipraxis.net/118368-%5Bandorra-2d%5D-auf-objekt-klicken-registrieren.html)

igel457 9. Aug 2008 16:37

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Du Maske ist doch für jede Grafik gleich - also bereche diese bei Starten des Spiels und lege alle Masken in einer Liste mit gleicher Indexierung wie in der ImageList ab.

Edit: Die Funktion die du da nennst, hat doch nichts mit deinem Problem zu tun :gruebel:

napsterxx 9. Aug 2008 16:42

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Keine Ahnung :D
Also ich habe 2 Hühnerbilder.
Index 1 und 2

Jetzt lade ich einfach beide nacheinander in ein Bitmap, mache dann "Bitmap.Mask;" und dann?

igel457 9. Aug 2008 16:53

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Warum eigentlich du "Hühnerbilder" - du willst doch wissen, ob der "Schuss" an dem Baum/Hinderniss vorbei gegangen ist. Also folgende Vorgehensweise:
Delphi-Quellcode:
var
  lst: TList;

procedure LadeSpiel;
var
  i: integer;
  bmp: TBitmap;
begin
  lst := TList.Create;
  for i := 0 to AdImageList.Count - 1 do
  begin
    bmp := TBitmap.Create;
    AdImageList[i].Texture.SaveToGraphic(bmp);
    bmp.Mask(DeineTransparenzFarbe);
    bmp.BitDepth:= pf1Bit; //Eventuell erstmal weglassen
   
    lst.Add(bmp);
  end;
end;

function TrifftObjekt(RelativesX, RelativesY: integer; ImageIndex: integer): boolean;
begin
  result := TBitmap(lst[ImageIndex]).Canvas.Pixels[RelativesX, RelativesY] = clBlack;
end;

procedure MausKlick(X, Y: integer);
begin
  //Erstelle Liste mit allen Objekten an der MausPosition
  //Überprüfe mithilfe des Bildindexes ob dieses Bild wirklich getroffen wurde, wenn
  //nicht überprüfe das nächste Element in der Liste
end;

napsterxx 9. Aug 2008 17:00

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Kay, danke.
Aber wieso wird auf clBlac übrprüf? Wird bei der Maske alles andere als die Transparentfare zu schwarz?
RelaivesX und Y sind ja dann die mauspositionen oder?

igel457 9. Aug 2008 17:08

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Schau mal nach Delphi-Referenz durchsuchenTBitmap.Mask in der Delphi-Hilfe.
RelativesX und RelativesY soll die Mauszeigerposition relativ zur oberen, linken Ecke deines (Hindernis)-Bildes sein.

Namenloser 9. Aug 2008 17:20

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Zitat:

Zitat von igel457
Warum eigentlich du "Hühnerbilder" - du willst doch wissen, ob der "Schuss" an dem Baum/Hinderniss vorbei gegangen ist. Also folgende Vorgehensweise:
Delphi-Quellcode:
var
  lst: TList;

procedure LadeSpiel;
var
  i: integer;
  bmp: TBitmap;
begin
  lst := TList.Create;
  for i := 0 to AdImageList.Count - 1 do
  begin
    bmp := TBitmap.Create;
    AdImageList[i].Texture.SaveToGraphic(bmp);
    bmp.Mask(DeineTransparenzFarbe);
    bmp.BitDepth:= pf1Bit; //Eventuell erstmal weglassen
   
    lst.Add(bmp);
  end;
end;

function TrifftObjekt(RelativesX, RelativesY: integer; ImageIndex: integer): boolean;
begin
  result := TBitmap(lst[ImageIndex]).Canvas.Pixels[RelativesX, RelativesY] = clBlack;
end;

procedure MausKlick(X, Y: integer);
begin
  //Erstelle Liste mit allen Objekten an der MausPosition
  //Überprüfe mithilfe des Bildindexes ob dieses Bild wirklich getroffen wurde, wenn
  //nicht überprüfe das nächste Element in der Liste
end;

Wozu eine Maske auf die Hintergrundfarbe erstellen und dann auf Schwarz prüfen? Da wäre es doch einfacher und schneller, einach das Sprite auf Hintergrundfarbe zu prüfen.

napsterxx 9. Aug 2008 17:41

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Ich benutze aber nicht die Sprite-Engine

napsterxx 9. Aug 2008 18:31

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Danke euch, habe es endlich geschafft :D
@Igel457 wusste gar nicht das du Admin von Andorra2D bist :thumb: :thumb: :thumb:

Ein Freund von mir meinte, das die Schaffer von Andorra gerne wissen welche Projekte mit Andorra programmiert wurden. Stimmt dsa? Denn ich würde gerne mein neues Projekt dann dir mal zeigen :D

igel457 9. Aug 2008 22:49

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Gerne! Immer her damit :wink:

napsterxx 10. Aug 2008 10:15

Re: [Andorra 2D] Auf "Objekt" klicken registrieren
 
Ich melde mich dann bei dir :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Seite 2 von 2     12   

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