[SFML] Pong - piłeczka.
Ostatnio zmodyfikowano 2012-05-09 20:14
Kefir Temat założony przez niniejszego użytkownika |
[SFML] Pong - piłeczka. » 2012-05-04 10:22:32 Cześć, jestem w trakcie pisania swojej drugiej w życiu gry (pierwsza to jednoręki bandyta w Visual Basic'u) jaką jest pong, i tu pojawia się problem. 1. Odbijanie piłeczki. Myślałem nad takim rozwiązaniem żeby stworzyć trzy boxy, połączyć w jedną całość i np. piłeczka odbija się od środkowego boxa to leci prosto, od górnego leci w dół po przekątnej. To jest dobre rozwiązanie czy może jest jakieś inne lepsze.
2.Lot piłeczki. Tutaj nie mam żadnego pomysłu na rozwiązanie, chciałbym aby odbita piłeczka poruszała się płynnie dopóki nie skoliduje się z paletką lub końcem ekranu. Jednak nie mam pomysłu jak się za to zabrać. Próbowałem to wsadzić w pętlę jednak wtedy piłeczka leci do przodu okropnie szybko i wcale jej nie widać.
Z góry dzięki za pomoc w rozwiązaniu tych problemów. |
|
SeaMonster131 |
» 2012-05-04 11:08:52 1. Kąt odbicia = kąt padania, z tymi box'ami to nie wiem co masz na myśli. 2. Jeżeli leci za szybko, to zmniejsz jej prędkość :) |
|
hincu |
» 2012-05-04 11:40:19 1. tak jak wyzej napisal, mozesz tez uzyc biblioteki fizycznej ( box2d ) 2. ruch jednostajny, ustal stala predkosc pilki, po uderzeniu zmniejsz ja a pozniej niech rosnie znow do stalej jednostajnie przyspieszono czy jak juz tam sobie chcesz, a jesli chcesz zrobic odbicia realistyczne to tez skorzystaj z box2d tam juz to jest : P, jesli zas chcesz sie tym pobawic sam to proponuje wrocic do podstaw fizyki z gimnazjum |
|
Admixior |
» 2012-05-09 19:44:26 Próbowałem to wsadzić w pętlę jednak wtedy piłeczka leci do przodu okropnie szybko i wcale jej nie widać. |
A próbowałeś dać wnd.SetFrameLimit(25); I wtedy piłka porusz się z prędkością 25*(ilość pixeli na klatek jaką ustawiłeś) na sekundę. |
|
hincu |
» 2012-05-09 20:14:40 A próbowałeś dać wnd.SetFrameLimit(25); I wtedy piłka porusz się z prędkością 25*(ilość pixeli na klatek jaką ustawiłeś) na sekundę. |
niezbyt dobre rozwiazanie ja bym to zrobil raczej tak pileczka.move( predkosc*window.getelapsedtime(), 0 ); |
|
« 1 » |