Formen vergleichen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Elayn
Beiträge: 14
Registriert: 15.02.2009 17:34

Formen vergleichen

Beitrag von Elayn »

Hi,
ich möchte von 2 sprites die form vergleichen (ein vorgegebenes & eins vom user).
also wie SpritePixelCollision(), aber anstatt 0 und 1 als rückgabewert z.B. einen wert, zu wieviel % sich die sprites überlappen.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Formen vergleichen

Beitrag von STARGÅTE »

Teste zuerst ob sie sich überhaupt überlappen mit SpritePixelCollision(),
dann kannst du an hand der Positionen der beiden Sprites die Pixel jeweils vergleichen und dann bekommst du einen Wert.
Dabei ist jedoch wichtig auf welches Sprite sich die Prozentangabe bezieht.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Elayn
Beiträge: 14
Registriert: 15.02.2009 17:34

Re: Formen vergleichen

Beitrag von Elayn »

soll ich sie also mit Point() vergleichen?
ich wollte eigentlich einen drawing-bereich wegen dem geschwindigkeitsverlust vermeiden.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Re: Formen vergleichen

Beitrag von kswb73 »

Ich würde sagen du legst ein Array an mit der Größe des 1. Bildes. Dort speicherst du für jeden Pixel ab, ob dort eine Kollision statfinden kann oder nicht. Dann liest du das zweite Bild aus und schaust für Pixel einzeln nach ob er, wenn er kollidieren kann, auf eine Pixel des 1. Bildes liegt, wo eine Kollsion stattfinden kann. Du speicherst die Anzahl der Zutreffenden Fälle und Dividierst (Teilst) sie durch die Zahl der vorhandenen Pixel. (Floats/Doubles verwenden)
Zum Punkte Geschwindigkeit. Schau dir mal die Beispiele für DirectDrawing an. Du findest sie in der Hilfe bei den 2ddrawing Befehlen. Das ist deutlich schneller.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
Elayn
Beiträge: 14
Registriert: 15.02.2009 17:34

Re: Formen vergleichen

Beitrag von Elayn »

ich verstehe nicht ganz, wie die einzelnen pixel geändert werden, wo der befehl dafür in der repeat-schleife steht.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Antworten