• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Builder c++ - Odbicie piłeczki od obiektu w środku aplikacji

0 głosów
926 wizyt
pytanie zadane 25 października 2016 w C i C++ przez MrFraxis Początkujący (390 p.)

Witam!

Tym razem muszę zrobić małą gierkę ale postanowiłem sobie utrudnić trochę życie i teraz mam mały problem :)

Mianowicie: Stworzyłem gierkę dla dwóch graczy ( sterowanie na klawiaturze ) taki pingpong dokładnie taki jaki był dawno temu na komputerach. Generalnie prawie wszystko działa idealnie, jednak dodałem na środku wyskakujący kwadracik, którego zadaniem jest odbicie piłki po zetknięciu się z jego krawędziami. Problem w tym, że nie potrafię tak zaprogramować tego kwadracika, żeby odbił piłeczkę tylko po zetknięciu się z nią ( próbowałem na wiele sposobów ale zawsze kończyło się tak, że piłka odbijała się na tym samym " Top'ie" jaki ma kwadrat tylko, że na całej szerokości gry ). Nie wiem czy opisałem to zrozumiale :D Poniżej kod, który działa ale zmienia kierunek  w pionie i poziomie ( y i x )  a ja chciałbym, żeby zmieniało osobno x i osobno y po uderzeniu w poszczególną ścianę.

-----------------------

if ( pilka->Top + pilka->Height >= Pulapka1->Top &&
             pilka->Top <= Pulapka1->Top + Pulapka1->Height &&
             pilka->Left <= Pulapka1->Left + Pulapka1->Width &&
             pilka->Left + pilka->Width >= Pulapka1->Left &&
             stoper_czas >= 10 )
             {
                        y = -y;
                        x = -x;

             }

------------------------

wyjaśnienie nazw:

pilka - piłka, która przemieszcza się po planszy

Pulapka1 - nieszczęsny kwadracik, który ma odbijać piłkę

 

Jeszcze dla pewności wyjaśnię ponownie o co mi chodzi:

Chciałbym, aby piłka po uderzeniu w prawą krawędź kwadratu zmieniła kierunek lotu ale tylko w pionie ( współrzędna y ), po uderzeniu w górną krawędź zmieniła kierunek lotu tylko w poziomie ( współrzędna x )  i tak dalej ale tylko po zetknięciu z kwadratem a nie na całej szerokości po lewej i prawej stronie kwadratu ( w pionie tak samo )

komentarz 25 października 2016 przez JAKUBW Nałogowiec (33,470 p.)

 postanowiłem sobie utrudnić trochę życie

Robiąc cokolwiek w Builderze 6 utrudniasz sobie życie i to bardzo. Spróbuj zrobić tą grę w SFML, bo jest lepiej, wydajniej i łatwiej.

komentarz 25 października 2016 przez MrFraxis Początkujący (390 p.)
Niestety nie mogę, program mam narzucony przez wykładowcę
komentarz 25 października 2016 przez JAKUBW Nałogowiec (33,470 p.)
Serio?! Co to za wykładowca?! A ty to robisz w Builderze 6 czy nowszym?
komentarz 25 października 2016 przez MrFraxis Początkujący (390 p.)

Staromodny sad Tak, pracujemy na Builderze 6 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 1,858 wizyt
pytanie zadane 16 października 2016 w C i C++ przez MrFraxis Początkujący (390 p.)
–1 głos
0 odpowiedzi 344 wizyt
0 głosów
1 odpowiedź 585 wizyt

93,741 zapytań

142,677 odpowiedzi

323,296 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...