Gra a'la GTA - proszę, pomóżcie napisać.

0

Chciałbym zrobić grę samochodową z prostym widokiem od góry A'la GTA. Ale co mam zrobić żeby stale przesuwała się trasa, a samochód jakby stał w miejscu tak jak w GTA. Myślałem żeby zrobić z formularza jeden wileki IMAGE i pozycji samochodziku następne IMAGE'e, ale co zrobić żeby kamera podążała za samochodem? Następnie co zrobić, że gdy trzymam np. LEWĄ strzałkę i GÓRNĄ to samochód żeby jechał po skosie?? Wiem jak zrobić żeby samochód jechał na np. strzałki, ale tylko w 4 podstawowe kierunki (lewo, prawo, góra, dół), a nie wiem co zrobić żeby jechał właśnie po skosie. I jeszcze jedno, co zrobić żeby gdy samochodzik wyjedzie poza tor jechał np. wolniej albo trafiał z powrotem na trasę. Albo jeszcze żeby były jakieś budynki i gdy samochód na nie najedzie zatrzymuje się? Bardzo proszę o odpowiedzi na te 3 pytania, bardzo zalezało by mi aby były to odpowiedzi kompletne, najlepiej z kodem źródłowym. Naprawdę bardzo mi na tym zależy. Pomóżcie proszę. [???] a wtedy możemy pójść na [browar]

:-)

Wojtek

[email protected]

0

Lepiej użyj [code]DelphiX[/code] będzie znacznie łatwiej to taka tylko drobna rada(TIPS)

Zatrzymywanie się to przy pomocy kolizji:

0

Jesli chodzi o kierowanie to najlepiej uzyc OnKeyDown i OnKeyUp
i jezeli cos wcisniemy to OnKeyDown moze nam ustawiz zmienna np. lewo := true;
i gora := true;
(tu najlepiej case zastosowac by sprawdzic jaki klawisz zostal wsisniety)
czyli mamy wcisniete strzalki wlewo i w gore czyli na skos.
A w OnKeyUp np.
lewo := false;
itd. oczywiscie tez case zastosowac
(kiesys cos takiego probowalem z samolotem i fajnie dzialalo [hurra] )
Pozdrawiam

0

Bardzo proszę o odpowiedzi na te 3 pytania, bardzo zalezało by mi aby były to odpowiedzi kompletne, najlepiej z kodem źródłowym. Naprawdę bardzo mi na tym zależy.

Tiaaa... moze mam ci to napisac??? Czy to nie jest bez sensu? Oczekujesz, ze ktos da ci gotowy kod zrodlowy? Wlasnie chodzi o to, aby naprowadzic kogos na jakis trop, a reszte, zeby juz sam robil, czyz nie? W koncu co to bedzie za satysfakcja jezeli dostaniesz gotowy kod zrodlowy, z ktorego nic nie bedziesz rozumial - podpiszesz swoim nazwiskiem i ok!

Pomóżcie proszę. [???] a wtedy możemy pójść na [browar]

Ta? A masz 18 lat? Bo z twoich wypowiedzi mozna wywnioskowac, ze jestes 12-13 latkiem... [diabel]

0

Poszukaj na Google.com kodów źródłowych wpisując:
Delphi game source code
Gdzieś widziałem engina gry samochodowej w Delphi.

Pozdrowienia Noob Saibot [browar]

0

Tak w ogole do do pisania gier Delphi sie nie nadaje(chyba ze maja to byc proste gry tzn np. ze QuakeIII odpada):)

0

Tak w ogole do do pisania gier Delphi sie nie nadaje(chyba ze maja to byc proste gry tzn np. ze QuakeIII odpada):)

Zabawne... A wiesz dlaczego? Bo QuakeII jest tłumaczony z C++ na Object Pascala (poszukaj w necie na stronach Jedi). A dlaczego jest tłumaczony? Aby zwiększyć szybkość gry...

0

Te nie obrażajcie mlodszych!

0

Ludzie nie róbcie z śiebie lamerów. Obrazek miasta nie wystarczy, bo powiedzcie jak zrobić w takim wypadku kolizje z budynkami ? Po drugie mapa w GTA 1 i 2 to 3D !!! ale od góry. A jeśli chodzi o skręcanie w różnych kierunkach to odczego jest sin() i cos() ?
Nara.

0

Tam wyżej się machnełem GTA1 i 2 to nie 3d chodziłó mi że zastosowano tam 3 teksturki budynków które dają właśnie taki efekt.

0

cześć... weź lepiej poczytaj kursy...
są zamieszczone na tej stronie
www.4programmers.net
z twoich wypowiedzi wynika że jesteś początkujący:-)
Też nie dawno zaczynałem przygode z delphi. Tak samo jak i ty
chciałem od razu zacząć pisać wielkie aplikacje. Moje znakomite projekty kończyły się na umieszczeniu na formularzu tego co było potrzebne (panele, imge, button..itp..). Gdy przyszedł czas na wpisanie kodu, to zamykałem delphi i sięgałem po pierwszą lepszą gre :-)
Gdy kilka moich znakomitych projektów się nie udało zacząłem szukać kursów. Ściągnąłem kurs pana Adama.
Tobie też radzę się wziąć za nauke potem za pisanie :-)
Gdyby nie pewna osoba dalej bym robił tak jak robiłem, czyli umieszczenie tego co trzeba potem zamykanie delphi. (devil dzięki :-D)
Swoje umijętności oceniam na bardzo mierne ale musiałem napisać ten post :-)
pozdrawiam...

0

wiesz co, ja dopiero zaczałem programować, myślałem sobie że będe robił gry albo bazy danych. a wiesz jak wygłąda mój njlepszy program?

program a;

var
plec: char;
a: string;

begin

writeln('podaj plec ');
writeln('(k)obieta, (m)ezczyzna: ');
readln(plec);
writeln('podaj swoje imie: ');
readln(a);
if (plec= 'm')
then writeln('czesc Mr ',a);
if (plec= 'k')
then writeln('czesc Mrs ',a);
readln;
end.

0

To mój jest lepszy:
var
cze,a: string;

begin

writeln('podaj swoje imie: ');
readln(a);
cze:='Cześć Mr';
IF a[length(a)]='a' THEN cze:=cze+'s';
IF (a='kuba')or(a='Kuba') THEN kupa!
writeln(cze+' '+a);
readln;
end.

0

var
cze,a: string;

begin

writeln('podaj swoje imie: ');
readln(a);
cze:='Cześć Mr';
IF a[length(a)]='a' THEN cze:=cze+'s';
writeln(cze+' '+a);
readln;
end.

hehe troche to trudne jak na pierwszy prog :-/

mój najlepszy w pascalu to chyba syntezator z mychą w trybie graficznym i z możliwością zapisywania muzyczek ;-)

0

Tak jak powiedzial werw0e to użyj DelphiX-a. Jak go obsłozyć jest od groma w necie. Bo jak byś zrobil tak jak pisałeś to by chodziło jakieś 5-10 fps-ów.

Po drogie to lepiej by się przydało żeby pod strzałki prawo lewo byl obrót wózka a tyl przod przyspieszenie lub nie :)

I tak wozek ma swoja predkosc i kant pod jakim jedzie wzucasz wzor

const piover180 = 0.0174532925;
car.x:=car.x+sin(-car.kant*piover180)car.predkosc;
car.y:=car.y+cos(-car.kant
piover180)*car.predkosc;

(też to gdzieś było w necie:). I masz nowe współrzedne

A co do kolizji to już męcz się sam bo z tym już jest troche roboty :(

0

juzek robiłem taką gierke niezle wyszła heheh ale była troszke bez sensu hehehe ale jak chcesz ją zobaczyc wyśle ci !!! jak chcesz...
[email protected]

0

Ludzie!! O czym Wy piszecie? Takie gry jak GTA pisane są przez duże zespoły profesjonalistów przez kilka(naście) miesięcy, a Wy pewnego dnia budzicie się i stwierdzacie: "ale dziś nudy, chyba napiszę sobie GTA" or something... śmieszne!
Oczywiście nie mówię tego po to, aby Was zniechęcić. Wręcz przeciwnie! Piszcie do bólu, a może w przyszłości przystąpicie do wyżej wspomnianego zespołu.

Ale Wy (niektórzy z Was) próbujecie od razu pisać rzeczy najtrudniejsze i co gorsza: przy pierwszej lepszej porażce prosicie o podanie Wam gotowego kodu. W ten sposób niewiele się nauczycie (o ile w ogóle cokolwiek).

No dobra, to tyle lania wody (czyli tego, czego nie lubię). Czas na konkrety:
matrix753 oprócz tego, że prosił o napisanie połowy kodu za niego, zadał również kilka pytań. Postaram się więc go nakierować, aby po napisaniu w końcu tej gry (jeśli do tego dojdzie) mógł się pod nią podpisać jako pełnoprawny autor.

Co do kierowania samochodem po skosie, to można wykorzystać starą sztuczkę (z gier pod DOSa). Pozwala ona na obsługę praktycznie wszystkich klawiszy na raz. Chodzi o to, aby stworzyć sobię tablicę wartości logicznych o długości równej ilości przetwarzanych znaków. Pod DOSem było to trochę łatwiejsze do wykonania, ale pod Windę też się da. np:
(sorry, że piszę w C++, ale jestem w nim bieglejszy - ale wszystko powinno być jasne)
[code] bool klawisze[256]; //przykładowa tablica[/code]
w zdarzeniu OnKeyDown należy wstawić wartość [b]true[/b] do tej tablicy pod indeksem zależnym od klawisza, np:
[code]void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{klawisze[Key] = true;
}

void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{klawisze[Key] = false;
}[/code]
W ten sposób można obsługiwać takie klawisze jak Shift, Ctrl, CapsLock itp. tak samo jak wszystkie inne.
I teraz dla przykładu wstawiasz sobię Timera i:
[code]void __fastcall TForm1::Timer1Timer(TObject *Sender)
{int x = 0, y = 0;

if (klawisze[VK_LEFT]) x -= 1;
if (klawisze[VK_RIGHT])x += 1; //jeśli wciśnięty jest lewy i prawy, to x == 0
if (klawisze[VK_UP]) y -= 1;
if (klawisze[VK_DOWN]) y += 1;
if (klawisze[VK_SHIFT]) //speed
{x *= 10;
y *= 10;
}

//poniżej to TYLKO przykład
PozycjaSamochodu.X +=x;
PozycjaSamochodu.Y +=y;
}[/code]
Mam nadzieję, że ten post trochę wyjaśnił. Jeśli nie, to pytaj dalej (tylko tym razem niech to będą rozsądne pytania!!).

0

Wrzuciłem gotową gierkę napisaną na Delphi coś w stylu GTA.

1
ValvolineMax napisał(a):

Wrzuciłem gotową gierkę napisaną na Delphi coś w stylu GTA.

To chyba największy odkop w historii 4programmers...
Dodatkowo ten Twój kod to jakaś porażka - nieczytelny, bezsensownie napisany, gra pisania na FORMACH!... boję się go nawet skompilować.

0

Trzeba było poczekać 4 dni z wrzuceniem, miałbyś odkop po równo 10 latach.
Zostawiam bo jednak w temacie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1