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 )