JAK STWORZYĆ PORUSZANIE W PROSTEJ GIERCE ?
Pewnie nie raz zastanawialiście się jak się robi gry. Każdy kiedyś marzył o czymś takim co pozwoliłoby na szybkie edytowanie i przerabianie gier. Wybieramy kilka animacji, dźwięków, broni, ustalamy kolor i ilość krwi. Gotowe!!!. Teraz można ją sprzedać, będą miliony dolarów!!. Lecz cóż pojawiły się przecież takie programy np. Klick&Play czy świetny Game Factory no i co gry stworzone przy pomocy takich narzędzi są żałosne i mizerne.
Ale szkoda gadania na głupoty. W tej części artykułu nauczymy się napisać proste ale sensowne poruszanie w grze. Do tego przykładu będą nam potrzebne 2 moduły GRAPH i CRT. Ustalamy 2 zmienne np. X i Y jako Integer. Potem trzeba zainicjować grafikę robimy to za pomocą procedury Initgraph czyli
np: var sterownik,tryb:Integer;
...
Initgraph(sterownik,tryb,''); {pomiędzy cudzysłowami wpisujemy ścieżkę dostępu do biblioteki *.bgi}
Tylko teraz pojawiło się pytanie jak zrobić, że jak wciśniemy strzałkę w lewo to obiekt się przemieści w daną stronę? W łatwy sposób po repeat wstawiamy coś takiego:
Znak:=ReadKey;
If Znak=#72 then Y:=Y-1; {strzałka w dół}
If Znak=#80 then Y:=Y+1; {strzałka w górę}
If Znak=#75 then X:=X-1; {strzałka w lewo}
If Znak=#77 then X:=X+1; {strzałka w prawo}
If Y=20 then Y:=Y+1; {granice Y od=20}
If Y=430 then Y:=Y-1; {granice Y do=430}
If X=20 then X:=X+1; {granice X od=20}
If X=620 then X:=X-1; {granice X do=620}
No i to już właściwie koniec. A tak to powinno wyglądać:
Uses Crt, Graph;
Var
Sterownik, Tryb,X,Y:Integer;
Znak:Char;
BEGIN
InitGraph(Sterownik, Tryb, ''); {Inicjowanie grafiki}
X:=50; {ustalona współrzędna X}
Y:=50; {ustalona współrzędna Y}
repeat
putpixel(x,y,15); {pixel o kolorze 15}
Znak:=ReadKey;
putpixel(x,y,0); {pixel o kolorze 0}
If Znak=#72 then Y:=Y-1; {po wciśnięciu strzałki w górę , Y-1}
If Znak=#80 then Y:=Y+1; {po wciśnięciu strzałki w dół , Y+1}
If Znak=#75 then X:=X-1; {po wciśnięciu strzałki w lewo , X-1}
If Znak=#77 then X:=X+1; {po wciśnięciu strzałki w prawo , X+1}
If Y=20 then Y:=Y+1;
If Y=230 then Y:=Y-1;
If X=20 then X:=X+1;
If X=780 then X:=X-1;
Until (Znak=#27); {#27 = ESC - wyjście z programu}
CloseGraph; {zamknięcie trybu graficznego}
END.
TEKST JEST WŁASNOŚCIĄ DAWIDA RYGIELSKIEGO I NIE MOŻE BYĆ ZAMIESZCZANY NA INNYCH STRONACH BEZ ZGODY AUTORA , UWAGI I PYTANIA PRZYSYŁAJCIE NA dawcioxxx@poczta.onet.pl