Autor Wątek: Pixel Perfect Collision  (Przeczytany 6378 razy)

Offline Rabbcio

  • Użytkownik

# Październik 13, 2009, 16:06:18
Niestety... 1. pkt mam, ale ten drugi nie jestem w stanie zrozumieć, pewnie dlatego, że za krótko uczę się Allegro i nie znam odpowiednich funkcji...
 

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Oti

  • Użytkownik

# Październik 13, 2009, 16:14:58
Niestety... 1. pkt mam, ale ten drugi nie jestem w stanie zrozumieć, pewnie dlatego, że za krótko uczę się Allegro i nie znam odpowiednich funkcji...
 
O ile dobrze zrozumiałem..sprawdzasz czy oba pixele które sięstykają NIE S¡ rózowe(255,0,255).

P.S. Korzystaj z tego:
http://www.allegro.cc/manual/

Offline cybek

  • Użytkownik
    • Strona domowa!

# Październik 13, 2009, 16:35:35
Z doświadczenia z SDL'em wynika, że operowanie na bitmapach potrafi być wolne, pobieranie kolorów, etc.
Najprościej zrób klasę przechowującą np. dwuwymiarową tablicę boolów. No, oprzyj sie na bibliotece, którą ci wysłałem na pierwszej stronie.. ale ją wykorzystaj.

Offline Lavi

  • Użytkownik
    • using namspace <Lavi.h>

# Październik 13, 2009, 18:07:24
Też mi się tak wydaje że operacje na bitach są strasznie mozolne.
Dlatego najlepiej zrobić sobie tak jak przed mówca radzi.

Opakuj sobie całość jako struct'urkę przechowującą orginalny obrazek oraz maskę kolizji która będzie wyznaczana na początku wczytywania.

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Październik 13, 2009, 18:26:19
Cytuj
Też mi się tak wydaje że operacje na bitach są strasznie mozolne.
Na bitmapach, nie na bitach. ;) Zresztą, na getpixel daleko się nie zajedzie i jak już, to wypada użyć _getpixel32 (minimalistyczna wersja getpixel'a, bez sprawdzania zakresów współrzędnych, konwersji formatów, itp).

Cytuj
Najprościej zrób klasę przechowującą np. dwuwymiarową tablicę boolów.
A najlepiej zrobić tablicę DWORDów i trzymać maski bitowe, w efekcie przyspieszając sprawdzanie do 32 razy. ;)

Offline cybek

  • Użytkownik
    • Strona domowa!

# Październik 13, 2009, 18:29:33
Cytuj
Najprościej zrób klasę przechowującą np. dwuwymiarową tablicę boolów.
A najlepiej zrobić tablicę DWORDów i trzymać maski bitowe, w efekcie przyspieszając sprawdzanie do 32 razy. ;)
Chodzi o ten dziwaczny sposób opisany w temacie do którego dałem linka? Hmm, nie sądziłem że tak bardziej skomplikowany kod może dać jakąkolwiek inną optymalizacją niż pod pamięć ;P

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Październik 13, 2009, 18:38:05
Cytuj
Chodzi o ten dziwaczny sposób opisany w temacie do którego dałem linka?
Nie mam pojęcia.

Cytuj
Hmm, nie sądziłem że tak bardziej skomplikowany kod może dać jakąkolwiek inną optymalizacją niż pod pamięć ;P
Lepszy dwa razy bardziej skomplikowany kod, niż prosty kod, który się wykona 32 razy więcej. :)

Offline cybek

  • Użytkownik
    • Strona domowa!

# Październik 13, 2009, 18:49:57
Cytuj
Chodzi o ten dziwaczny sposób opisany w temacie do którego dałem linka?
Nie mam pojęcia.
Chodzi mi konkretnie o ten sposób:
http://forum.warsztat.gd/index.php/topic,13239.msg163409.html#msg163409

Cytuj
Cytuj
Hmm, nie sądziłem że tak bardziej skomplikowany kod może dać jakąkolwiek inną optymalizacją niż pod pamięć ;P
Lepszy dwa razy bardziej skomplikowany kod, niż prosty kod, który się wykona 32 razy więcej. :)
No tak, ale czasem bardziej skomplikowany kod, może się wykonać o wiele razy więcej/dłużej niż mniej skomplikowany kod ;)
Zależy czy ktoś chce prędkość czy pamięć ;P

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Październik 13, 2009, 18:57:35
Cytuj
No tak, ale czasem bardziej skomplikowany kod, może się wykonać o wiele razy więcej/dłużej niż mniej skomplikowany kod ;)
Nie w tym przypadku.