Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

allegro c++ kolizja dwóch obiektów i usunięcie jednego

Ostatnio zmodyfikowano 2012-01-20 20:22
Autor Wiadomość
arek194
Temat założony przez niniejszego użytkownika
allegro c++ kolizja dwóch obiektów i usunięcie jednego
» 2012-01-19 22:47:47
Witam
W jaki sposób mogę zrobić kolizje dwóch obiektów podczas której jeden z obiektów zniknie i za to dostaje jeden punkt.
W chwili obecnej potrafię zrobić kolizje by wyświetlił się napis kolizja, obiekt zatrzymał się przed drugim obiektem.
Udało mi się zrobić kolizje w której jeden z obiektów się nie rysuje ale punkty dodają się cały czas jakby obiekt nadal istniał tylko że jest niewidzialny. Męczę się z tym już kilkanaście dni i mam prośbę by ktoś pokazał mi przykład funkcji bądź warunku który usuwa jeden z obiektów. 
P-48868
DejaVu
» 2012-01-20 00:06:05
C/C++
if( istnieje( A ) && istnieje( B ) && kolizja( A, B ) )
{
    zabij( A ); //albo zabij(B)
}
P-48873
draculeq
» 2012-01-20 02:16:33
Pomyśl nad tym co znaczy "usunąć".
Jak masz ich współrzędne zapisane tak:
C/C++
int x1 = 100, y1 = 100;
int x2 = 300, y2 = 300;
to jedyne co możesz zrobić to:
jeśli zachodzi kolizja:
- dodaj punkt
- pozycje gracza 1 lub 2 ustawić poza mapę i nie wykonywać dla niego operacji poruszania się (dodajesz zmienna bool zywy)

Jeśli działasz na wskaźnikach albo wektorach to nie powinieneś nie wiedzieć.


@UP Czasem mam wrażenie że te odpowiedzi są pisane żeby forum zapchać albo nabić sobie postów. Bo jak inaczej wytłumaczyć takie posty? Sory ale ten jest naprawdę jak dla idioty.
P-48875
DejaVu
» 2012-01-20 02:26:47
@UP Czasem mam wrażenie że te odpowiedzi są pisane żeby forum zapchać albo nabić sobie postów. Bo jak inaczej wytłumaczyć takie posty? Sory ale ten jest naprawdę jak dla idioty.
Uwierz, że początkujący programista nie potrafi rozbić większości problemów na czynniki takie, jakie zostały tu przedstawione. Ponadto ten krótki kod rozwiązuje problem, który posiada autor tematu.

Co do Twojej wypowiedzi: Ty chcesz mu zasugerować konkretne rozwiązanie jakie Ty widzisz, ja podaję mu rozwiązanie ogólne, które może zinterpretować po pierwsze dowolnie, a po drugie jest prawidłowe zarówno z punktu widzenia amatora jak i profesjonalisty. Amator prawdopodobnie chce usunąć 'od razu' obiekt, natomiast profesjonalista zapewne usunie go po wykonaniu wszystkich operacji w pętli głównej gry (bo wie czym grozi natychmiastowe usunięcie obiektu).

A teraz pozwolę sobie na offtopic, ponieważ ostatnio sporo osób zaczyna zarzucać 'administracji serwisu', że 'nic nie wiedzą' albo 'nie chcą pomagać'. Myślę, że gdyby moje podejście i rozumowanie było błędne ten serwis nie wyglądał tak jak wygląda. Pomoc użytkownicy dostają. Zgadzam się, że pomoc nie jest podawana wprost i zmuszamy często i gęsto do myślenia oraz wielokrotnie odsyłamy do podstaw programowania, ale od programisty wymaga się samodzielnego myślenia, a nie 'gotowców' z którymi walczymy od dnia powstania forum tego serwisu. "Daj wędkę zamiast ryby" to nasza polityka i jeżeli uważasz, że jest zła to pamiętaj, że to jest tylko i wyłącznie Twoja indywidualna opinia. Załóżmy jednak, że 50% moich postów to offtopic (czyli jak to ładnie ująłeś 'post pt. zapchaj dziurę') :) Jeżeli mam prawie 7 tysięcy postów to znaczy, że 3,5 tysiąca razy moja odpowiedź była pomocna. Porównując to 3,5 tysiąca pomocnych postów do Twoich 31 pomocnych postów uważasz, że masz prawo do krytykowania arbitralnie tych, którzy dali Ci miejsce do dzielenia się wiedzą oraz tych, którzy poświęcili niezliczone ilości godzin na to byś miał z czego się uczyć? Zastanów się nad tym trochę... tylko o to proszę zanim napiszesz kolejny krytyczny post na temat postawy użytkowników naszego forum mających >500 postów.
P-48876
draculeq
» 2012-01-20 03:28:36
Pozwolę sobie "nabić" jeszcze jeden post w celu przyznania ci racji, co więcej zmieniłeś trochę mój punkt widzenia na pomoc innym. Bo w sumie b.często wystarczy wytłuścić to co potrzebujący sam powiedział żeby wiedział czego chce, ale ja się na nauczyciela nie nadaje :D. Sam śmiało mogę powiedzieć że jeszcze jestem początkujący bo podstawy c++ ciągle szlifuje. A połowa moich postów to szukanie pomocy bo google się gotują. A do opinii którą wyraziłem powyżej skłoniła mnie lektura jakiegoś tematu który po 3 interesujących mnie postach brnął w zupełnie innym kierunku na 2 strony.
Od ok roku zaglądam na to forum i został na nim odwalony kawał dobrej roboty, sam się c++ nauczyłem w sporej części tego portalu. Także w tym miejscu wyrażam swój podziw ku Tobie i innym współtwórcom. Tym  zakończę ten wątek.
P-48877
arek194
Temat założony przez niniejszego użytkownika
» 2012-01-20 09:06:58
gto jeśli zajdzie kolizja to przestaje rysować obiekt a współrzędne x i y ustawiam poza obszar widzenia ekranu. Niestety nie uczyłem sie nic o <vector> . A takie stwierdzenia jak : post dla idioty to pozostaw sobie.
P-48882
SeaMonster131
» 2012-01-20 20:01:11
to jeśli zajdzie kolizja to przestaje rysować obiekt a współrzędne x i y ustawiam poza obszar widzenia ekranu.
Wystarczy, że przestaniesz rysować obiekt :)

Masz np dla każdego obiektu bool widac = true. I wtedy
C/C++
if( obiekt.widac )
     obiekt.Rysuj();


if( kolizja && obiekt.widac )
{
    punkty++;
    obiekt.widac = false;
}

Wtedy dany obiekt będzie rysowany kiedy widac to true, i doda się tylko 1 pkt.


Niestety nie uczyłem sie nic o <vector>
Bardzo przydatna rzecz: » Kurs STL, C++Kontener tablicy (std::vector) lekcja
P-48962
arek194
Temat założony przez niniejszego użytkownika
» 2012-01-20 20:22:08
Bardzo dziękuje za pomoc temat do zamknięcia:)
P-48970
« 1 »
  Strona 1 z 1