Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2D] Pixelabfrage (https://www.delphipraxis.net/115596-%5Bandorra-2d%5D-pixelabfrage.html)

Looper 14. Jun 2008 16:55


[Andorra 2D] Pixelabfrage
 
Hi,

ist es irgendwie möglich auf einzelne Pixel des Canvas des AdDraws zuzugreifen.
Mir fällt nur die Möglichkeit ein, ein Screenshot des Bildschirms zu machen, aber das möchte ich nicht. Würde zu lange dauern und geht bestimmt auch anders.

Wie immer danke im Voraus für die Antworten :corky:

mfg Looper

igel457 14. Jun 2008 18:41

Re: [Andorra 2D] Pixelabfrage
 
Einzelne Pixelabfragen sollten nicht durchgeführt werden. Was genau möchtest du machen?

In der nächsten Version von Andorra 2D ist es auf jeden Fall möglich, die gesamte Szene in eine Textur zu Rendern und dann auf einzelne Pixel zuzugreifen. Doch auch das ist langsam und nicht "State of the Art".

Looper 14. Jun 2008 19:24

Re: [Andorra 2D] Pixelabfrage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay,

also mein Ziel ist es "Achtung die Kurve" (falls nicht bekannt siehe hier) zu programmieren, bzw. habe ich dies schonmal gemacht. Allerdings nur mit der Turtle. Nun habe ich die Turtle auf Andorra 2D zugeschnitten und will das nochmal hiermit programmieren, da ich meine alte Version nicht mehr habe (nur die exe) und noch einige Fehler zu beheben sind.

Nun das Problem:
Die Kollisionsabfrage wäre sehr leicht zu realisieren, indem ich die Pixel, auf die gleich gezeichnet werden, auf Farben überprüfe. Wenn diese Pixel beispielsweise rot sind würde eine Kollision stattfinden und der Spieler wäre tot.
Da das nun nicht so leicht funktioniert, müsste ich mir über Alternativen Gedanken machen, z.B. ein großes zweidimensionales Array
Delphi-Quellcode:
Pixel : Array [1..Addraw.Display.Width] of Array [1..AdDraw.Display.Height] of TAndorraColor
indem die Farben der Pixel abgespeichert sind. Habt ihr noch andere Ideen die Kollisionsabfrage zu realisieren?

Freue mich auf weitere Antworten, Looper

PS: alte Version von mir ist im Anhang (auch alleine spielbar)

Diamondback2007 18. Jun 2008 12:10

Re: [Andorra 2D] Pixelabfrage
 
Könntest du die Kollision nicht über Andorras Physikengine machen?
Also das wäre wahrscheinlich das Code technisch einfachste was mir einfällt.

inherited 18. Jun 2008 12:16

Re: [Andorra 2D] Pixelabfrage
 
Leite von T(Image)SPrite ab und überschreibe die DoCollision-Methode und behandel da die Kollision
(Außerdem musst du Collision deiner Spriteengine(?) aufrufen)

Looper 18. Jun 2008 12:27

Re: [Andorra 2D] Pixelabfrage
 
Hey,
ertsmal danke für die Antworten.

Aber ich glaube das Array ist hier die leichteste Lösung, da die Kollisionsabfage nicht funktioniert. Es sind ja nur die "Köpfe" der Spieler ein Image. D.h. auch nur die sind gespeichert und reagieren gegenseitig auf Kollisionen.

Oder sehe ich das falsch?
mfg Looper


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