|
| Aktualności Po rejestracji konta aktywowane są automatycznie. Aktywacja przez admina została wyłączona.
22-07-2007, 17:20 autor VG" Uciekanie" Uciekanie - jak każdy się pewnie domyśla - jest przeciwieństwem gonienia, ponieważ przeciwnik od nas ucieka. Można równie dobrze powiedzieć że nie tyle ucieka co po prostu oddala się do gracza. Pomyślmy, co trzeba zrobić żeby napisać algorytm uciekania. Odpowiedź słyszę bezbłędną: w algorytmie gonienia zmienić plusy na minusy a minusy na plusy. Proste prawda? Program który napisałem prezentuje NIESŁYCHANIE TRUDNĄ sztukę uciekania. ;Jeżeli gracz jest na lewo od przeciwnika przemieść go w prawo If playerx < enemyx enemyx = enemyx + ENEMYSPEED EndIf ;Jeżeli gracz jest na prawo od przeciwnika przemieść go w lewo If playerx > enemyx enemyx = enemyx - ENEMYSPEED EndIf I to samo trzeba zrobić z górą i dołem. Jest jeszcze jeden przydatny fragment ktory zatrzymuje przeciwnika jezeli ten by chciał nam uciec za ekran. If enemyx <= 0 enemyx = 0 ElseIf enemyx >= 800 enemyx = 800 EndIf If enemyy <= 0 enemyy = 0 ElseIf enemyy >= 600 enemyy = 600 EndIf Te liczby to współrzędne ekranu. Kod ten sprawdza współrzędne przeciwnika aby dowiedziec się, czy ten jest poza ekranem czy jest na ekranie. I to by było na tyle. W tych trzech artykułach omówiłem bardzo proste podstawy sztucznej inteligencji, ktore mam nadzieje przydadzą się. VG
|
19-07-2007, 12:06 autor VG
" Gonienie" Drugi artykuł który piszę, poważniej traktuje zagadnienie sztucznej inteligencji wyskorzystywanej w tym języku. Będzie to tzw. gonienie. Polega ono na znalezieniu jednego obiektu i przeniesieniu innego obiektu w miejsce wyznaczone na podstawie współrzędnych pierwszego obiektu. Link ze zdjęciem które wyjaśnia gonienie http://www.fotosik.pl/pokaz_obrazek/91e4c861c51339ac.html Napiszę przykładowy program: ;; PROGRAM WYJAŚNIAJĄCY "GONIENIE" ;; Jeżeli gracz znajduje się nad przeciwnikiem przemieść przeciwnika w górę If playery > enemyy enemyy = enemyy + ENENMYSPEED endif ;;Jeżeli gracz znajduje się na lewo od przeciwnika przemieść przeciwnika w lewo If playerx < enemyx enemyx = enemyx - ENEMYSPEEED endif waitkey ;czeka az nacisniety zostanie jakis klawisz End Podobnie należy zrobić z pozostałymi kierunkami. Teraz wyjaśnię kod: If playery > enemyy. Jak to działa? Po prostu porównujemy tu współrzędną y gracza ze współrzędną y przeciwnika. To samo dzieje się w kolejnych instrukcjach If..Endif. Kiedy zmienna playerx ma wartość mniejszą od enemyx, gracz znajduje się na lewo od przeciwnika, więc przeciwnik rusza w lewo, natomiast kiedy kiedy zmienna playerx ma wartość większą - przeciwnik rusza w prawo. Proste a zarazem interesujące. ;;VG;;
|
15-07-2007, 18:34 autor VG
Liczby losowe:
Podstawą programowania sztucznej inteligencji w tym języku jest używanie zmiennych losowych, co prawda nie ma to nic wspólnego z inteligencją programów ale od czegoś trzeba zacząć.
{Zmienne losowe tak naprawdę nie są losowe. Gdybyśmy wydrukowali milion losowych liczb zauważylibyśmy pewien wzór. Znalezienie prawdziwie losowej liczby za pomocą komputera jest prawie niemożliwe. Zmienne tworzone przez komputer nazywane są zmiennymi pseudolosowymi.}
Do generacji liczb losowych służą funkcje. Pierwszą z nich jest funkcja SeedRnd (ang.seed - ziarno). Funkcja ta wczytuje do komputera liczbę, która będzie używana później do tworzenia liczb pseudolosowych.
Deklaracja: SeedRnd seed
Następną funkcją jest funkcja MilliSecs(), która zmienia się za każdym razem, kiedy program jest uruchamiany. Funkcja ta zwraca liczbę milisekund z zegara systemowego(która upłynęła od czasu ostatniego startu komputera). Łącząc to wszystko wychodzi nam następująca deklaracja:
SeedRnd MilliSecs() - jest to generator liczb losowych który konfiguruje program tak, aby używał zmiennym losowych.
Po ustawieniu generatora można przejść do ustawiania parametrów. W blitzbasic służą to tego dwie funkcje. Są to:
Rand ([start], end)
Rnd (start#, end#)
Są one do siebie bardzo podobne z jedną małą różnicą. Rand używa liczb stało pozycyjnych takich jak: 8, 246, czy 987. Natiomiast Rnd używa liczb zmiennoprzecinkowych, np: 1,24 65,87 czy 1.988 (tysiąc dziewięćset osiemdziesiąt osiem).
Jeżeli do funkcji Rand przpiszemy liczbę np 1.988 skreśli ona to co znajduje się po przecinku i zwróci nam po prostu 1.
VG
|
12-04-2006, 22:37 autor Sir_GiurekHey. Co myślicie o Blitz3D i BlitzMax? Zapewne dla wielu są to tylko interpretery Basic’a. Hmm…może i macie rację. A jak myślicie co można przy pomocy w/w języków programowania stworzyć?
|
12-04-2006, 22:29 autor Sir_GiurekMam dla Was taką ciekawostkę wyszperaną w sieci. Dwa identyczne programy w Blitz3D i BlitzMax rysujące 10000 obiektów typu image. Podajcie własną ścieżkę dla jakiegoś obrazka. U mnie jest to piłeczka 15x15 punktów.
|
12-04-2006, 21:55 autor Sir_GiurekWitam po raz kolejny. To już 8 odcinek, i powoli zbliżamy się do ukończenia naszej gry. Jak pisałem ostatnio, puścimy dzisiaj naszą piłeczkę w ruch. Wypadało by też dodać jakąś graficzkę do menu, bo przyznacie że, sam tekst nie wygląda zbyt zachęcająco. Kodu jak zwykle nie będę dokładnie opisywał, bo wszystkiego można się dowiedzieć z komentarzy w nim zawartych.
|
12-04-2006, 21:52 autor Sir_GiurekWitam. No i się zaraz wyda na jakiej to grze chcę Was uczyć Blitz’a. Tututuuuu… Arkanoid !!! Łeee tego już tyle było, powie wielu. Ale co mi tam, taką gierkę sobie wybrałem i już. Na pocieszenie powiem że, jak już skończę kurs Blitz’a oparty na budowaniu gry, zacznę opisywać instrukcje dotyczące grafiki 3D. Na pewno znajdzie się parę osób które będą brnęły w świat 3D właśnie w Blitz3D. Popiszemy, zobaczymy
|
12-04-2006, 21:49 autor Sir_GiurekDzisiaj zajmiemy się instrukcjami służącymi do obsługi myszki. W dzisiejszych czasach 95% gier wykorzystuje myszkę, jak nie do obsługi menu to w samej grze. Obsługa gryzoniem naszej aplikacji (gry) jest po prostu wygodna. Dlatego też postanowiłem jeden z odcinków tego kursu, przeznaczyć specjalnie na dokładne omówienie instrukcji odnoszących się do obsługi naszego gryzonia
|
12-04-2006, 21:43 autor Sir_GiurekJak pisałem, w piątym odcinku naszego serialu zajmiemy się prostymi instrukcjami graficznymi. Trzeba przyznać szczerze że, dzisiaj instrukcje niżej opisane wykorzystuje się raczej rzadko. No, ale że są, należało by je opisać bo gdzieś, komuś mogą się przydać. Niektóre instrukcje opisałem już wcześniej, ale powtórzę je tutaj aby wszystkie instrukcje dotyczące rysowania były razem.
|
|
|