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

Gra a'la GTA - proszę, pomóżcie napisać.
M7
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 22 lata
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

matrix753@wp.pl

edytowany 1x, ostatnio: olesio
W0
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 14 lat
  • Postów:384
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

Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:13 dni
  • Postów:11948
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]

Noob Saibot
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 16 lat
  • Postów:121
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]

a_s_f
  • Rejestracja:ponad 22 lata
  • Ostatnio:18 dni
  • Lokalizacja:Rzeszów
0

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

babubabu
A kto Ci takich bzdur nagadał :)
TW
stary co Ty gadasz... ja robię super mario od podstaw i ładnie śmiga... wszystko zależy od umiejętności programisty - Delphi jak najbardziej się nadaje do tworzenia ładnych i grywalnych gier:)
babubabu
@tweety Też robię gierce ale nie w delphi a w Lazarusie :)
Vogel
  • Rejestracja:ponad 22 lata
  • Ostatnio:prawie 7 lat
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...


Life is just a dream, you know...
[Cowboy Bebop]
DU
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 21 lat
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.

Gerard
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 13 lat
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...

kubakapica
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 21 lat
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.

W0
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 14 lat
  • Postów:384
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.

DR
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:683
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 ;-)

GO
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 14 lat
  • Postów:57
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 :(


++++++++++[>+++++++>---<<-]>[>++>+<<-]>+[>>+>+>+>+>+>+<<<<<<<-]>+.>.>+++.>------.>.>-.
0x02b||!0x02b - To be or not to be
AdamK86
  • Rejestracja:około 22 lata
  • Ostatnio:około 11 lat
  • Postów:523
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...
adaskulikowski@poczta.onet.pl


Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 4 godziny
  • Lokalizacja:Poznań
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.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
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ć.


edytowany 1x, ostatnio: Patryk27
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 4 godziny
  • Lokalizacja:Poznań
0

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


xxx_xx_x
Autor postu w końcu napisał grę ;-)
ŁF
chyba rekord, jeśli chodzi o nekrofilię
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:7 dni
  • Lokalizacja:Rzeszów
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)