Wrobek12 Temat założony przez niniejszego użytkownika |
» 2019-01-13 13:49:58 Tak, wiem. Chodzi o to, że początkowo wywołuje i ustawiam pozycje sprite'ów. Przy poruszaniu się postacią mam warunek kolizji z trzema obiektami, każdym z osobna. Przez to, że są wywoływane, program znajduje kolizje mimo, iż tych obiektow nie widać. Rozumiem czemu tak sie dzieje, ale jest może jakiś szybki sposób na zmianę kodu, aby wykrywało kolizje jedynie z narysowanymi obiektami ? |
|
pekfos |
» 2019-01-13 13:55:34 Nie da się stwierdzić, czy sprajt jest wyświetlany na ekranie, czy nie. Sam musisz to wiedzieć. |
|
Wrobek12 Temat założony przez niniejszego użytkownika |
» 2019-01-13 14:06:04 Nie, nie. Chodzi o to, że go tworze ( wywołuje z klasy ), ale nie używam rysowania, więc defakto jest wyświetlany jako niewidoczny obiekt ( przynajmniej tak wynika z tego jak zachowuje się program ). |
|
pekfos |
» 2019-01-13 14:20:14 Jak nie używasz rysowania, to nie jest wyświetlany w żaden sposób. Nawet w ten niewidzialny. Wydawało mi się, że zgodziliśmy się co do tego, że wyświetlanie nie ma nic do kolizji. |
|
Wrobek12 Temat założony przez niniejszego użytkownika |
» 2019-01-13 14:46:08 Tak, nie jest wyświetlany.
Opiszę może to kodem, żeby to lepiej wytłumaczyć.
Obiekt Obiekt1; Obiekt1.pozycja(300, 300); Obiekt Obiekt2; Obiekt2.pozycja(800, 200);
// Wywoływanie obiektów typu sprite
if (kolizja wybranego obiektu z Obiekt1 + kolizja wybranego obiektu z Obiekt2) { Wybrany_obiekt.move(0, -5); } // kolizja
window.clear(); window.draw(Obiekt1); // Rysowanie jedynie obiektu numer 1
W tym przypadku działa to tak, że Obiekt2 jest wykrywany przy sprawdzaniu kolizji, ale rysuję na ekranie jedynie Obiekt1. Chodzi o to, żeby przy sprawdzaniu kolizji w zależności od narysowanych obiektów wykrywana była kolizja. Jest szansa na taki kod ? |
|
pekfos |
» 2019-01-13 14:55:17 To dlaczego sprawdzasz kolizję z obiektem 2? Jeśli ma się pojawiać warunkowo, to kolizję również musisz sprawdzać warunkowo. |
|
Wrobek12 Temat założony przez niniejszego użytkownika |
» 2019-01-13 14:57:38 Tego właśnie chcę uniknąć. Ilość warunków do poruszania się obiektem to około 50 linijek. Aby sprawdzać kolizje warunkowo muszę to właściwie pomnożyć przez 3 i dodać na początku warunek. No nic, jeżeli nie ma innej opcji to trudno. Dziękuję za pomoc :) |
|
pekfos |
» 2019-01-13 14:59:31 Jeśli musisz kopiować kod, to kod jest źle napisany. Jak chcesz lepszych rad, to pokaż kod. Na sucho mogę powiedzieć tylko tyle. Jeśli próbka powyżej jest reprezentatywna, to źle robisz, że masz Obiekt1 i Obiekt2, a nie obiekt[0] i obiekt[1]. Mając obiekty w tablicy, możesz przetwarzać je pętlą, zamiast duplikować kod dla różnych nazw zmiennych. |
|
1 2 « 3 » 4 |