Strona główna   FORUM Szukaj Zaloguj się Rejestracja  
Menu
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.
09-02-2010, 11:28

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Moduły


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_Giurek
Hey. 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_Giurek
Mam 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_Giurek
Witam 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_Giurek
Witam. 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_Giurek
Dzisiaj 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_Giurek
Jak 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.
Pages: [1] 2
Ostatnio
[Wczoraj o 21:02]

[Wczoraj o 20:19]

[04-02-2010, 18:43]

[31-01-2010, 09:42]

[30-01-2010, 23:55]
użytkowników
Użytkowników w sumie: 343
Ostatni: Mardor
Statystyki
Wiadomości w sumie: 6467
Wątków w sumie: 818
Dziaś odwiedzin: 8
Ogółem odwiedzin: 53
(06-05-2008, 02:21)
Użytkownicy online
Użytkownicy: 1
Goście: 9
Ogółem: 10

Przyjaciele
Działa na MySQL Działa na PHP Powered by SMF 1.1 RC2 | SMF © 2001-2005, Lewis Media
TinyPortal v0.8.6 Š Bloc
Prawidłowy XHTML 1.0! Prawidłowy CSS!