Poznaliśmy już wszystkie instrukcje zaplanowane na ten kurs języka C. Wykorzystamy je dziś do zilustrowania oblężenia zamku. Twoim zadaniem będzie napisanie programu, który będzie symulował ostrzał zamku przez armaty (kule poruszają się wg. wzorów na rzut ukośny).
Program powinien:
animate()
w celu uzyskania efektu płynnego ruchu kuli – przykład użycia funkcji animate()
znajdziesz na końcu instrukcji).Spodziewamy się, że wynikiem działania Twojego programu będzie rysunek zbliżony do poniższego:
Funkcja rysująca zamek:
void RysujZamek() {
550, 300, 550, 600);
line(550, 300, 600, 300);
line(600, 300, 600, 500);
line(600, 500, 660, 500);
line(660, 500, 660, 400);
line(660, 400, 640, 400);
line(640, 400, 700, 350);
line(700, 350, 760, 400);
line(760, 400, 740, 400);
line(740, 400, 740, 500);
line(740, 500, 800, 500);
line( }
Funkcja animate()
tak naprawdę jedynie spowalnia wykonywanie pętli while
tak, aby kółka nie rysowały się zbyt szybko. Argument funkcji to wartość mówiąca o liczbie wykonań ciała pętli w ciągu sekundy. Uwaga: wartość zero mówi o wykonaniu ciała pętli bez opóźnienia.
Przykład jej użycia w naszym programie wygląda następująco:
while(1) { // petla glowna
// wczytaj x0, V0 i kat alpha
while(animate(100)) { // petla animujaca lot kuli
// narysuj zamek i armate
// oblicz nowe wspolrzedne x i y
// narysuj okrag w odpowiednim miejscu
// zwieksz parametr t
// zawrzyj warunek przerwania petli animujacej,
// gdy kula uderza w sciane lub spada na ziemie
}
// zapytaj czy kula trafila w mur i jesli tak
// wyjdz z petli glownej
}