Pascal praca

Programovacie jazyky, rady, poradňa...
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Pascal praca

Príspevok od používateľa jjakub »

Ahojte chcem vs poprosit ci mi nevie niekto pomoct .
Robim jednu pracu chcem spravit hru .

Princip je asi taky ze mam nieco ako lod ktoru v cykle repeat a until ovladam sipkami a potrebujem aby mi z boku lietali meteority z prava dolava .

To prave neviem spravit lod normalne ovladam ale neviem spravit aby zarovnen s ovladanim lietali samostatne tie meteority cyklus for nejde lebo ten mus cely prejjst

Neviete mi poradit ako to spravit sucastne aby som mohol ovladat a aby mi z prava sli tie meteority ?
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: Pascal praca

Príspevok od používateľa 94jakub »

Ja by som to spravil tak že v tom cykle tých meteoritov by bol nejaký príkaz(sa mi zdá že v pascale niečo také je, nejaký keypressed alebo čo), ktorý po stlačení šípky vykoná pohyb tej lode.
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: Pascal praca

Príspevok od používateľa javatar »

no mozes v cykle kde budes delayom urcovat rychlost cez keypressed cekovat co uzivatel stlacil... ale zda sa mi ze tudy cesta nevede, ako naprogramovat multitask v single thread mi ale neako nenapada
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Pascal praca

Príspevok od používateľa BX »

Takúto hru v pascale, celkom odvážne. Nechcelo by sa mi :P Ale budiš:

Takéto hry sa robia tak, že máš jeden herný cyklus (ten tvoj repeat-until) a v ňom sa odohráva všetko. Aj loď, aj meteority sa budú obnovovať v tom jednom cykle cez svoje funkcie (alebo procedúry). Mal by si si spraviť teda nejakú funkciu, ktorá bude tieto meteority obnovovať (teda ich pozíciu a správanie - ak do nich budeš aj strielať)
Nejaký pseudo-kód by vyzeral asi takto:

Kód: Vybrať všetko

repeat

if keypressed then begin ch := readkey; UpravLod(ch); end;
UpravMeteority;
delay(20);

until(koniec)
Funkcia UpravLod je jasná a asi ju už aj máš, keďže ju vieš ovládať.
Na meteority by som si možno vybral 2 polia čísel s takou veľkosťou, koľko chceš meteoritov. Ak teda také polia máš, inicializuješ ich na súradnice svojich meteoritov: (alebo ak je v pascale nejaká obdoba štruktúr z C++, neviem. Prvé ma napadli 2 polia)
funkcia NastavMeteority. Predpokladám teda dva polia mX a mY

Kód: Vybrať všetko

for i := 1 to PocetMeteoritov do
begin
  mX[i] := 85 // Ak robis v konzolovom rezime, tak je tam 80 stlpcov. 85 teda bude mimo obrazovky a to chcem.
  mY[i]:= random(24)+1; // zase konzolovy rezim ma 24 riadkov (Teraz si nie som isty, ci je pociatok v suradniciach [1,1], alebo [0,0])
end;
No a teraz UpravMeteority:

Kód: Vybrať všetko

for i := 1 to PocetMeteoritov do
begin
  gotoxy(mX[i], mY[i]);
  write(' ');

  dec(mX[i]);
  
  gotoxy(mX[i], mY[i]);
  write('O');
end;
Takto by to mohlo fungovať podľa mňa. Síce si nie som istý tým readkey, či bude čakať, alebo si zoberie znak z keypressed. Dúfam, že to druhé. Samozrejme správu premenných už si zabezpeč ako chceš. Či ich budeš prenášať a vracať, alebo ich hodíš ako globálne, myslím, že v pascale je to jedno :D
Samozrejme musíš sa o svoje polia starať a nenechať súradnice znižovať donekonečna plus nejaké ďalšie vylepšenia. Základná logika je takáto, dúfam, že ti to pomohlo a že som nenapísal nijakú hlúposť. Teraz ale utekám na autobus :D
jjakub
Amateur
Amateur
Príspevky: 23
Registrovaný: 13 sep 2009, 13:56

Re: Pascal praca

Príspevok od používateľa jjakub »

Diky za rady zajra sa na to pozriem riadne.

jj rad by som este strielal do nich :D

Ja som to robil cez ten keypresed

mam nejak tak ze


repeat
tu v cykle som mal proceduru s tym meteoritom
problem ale je ze vzdy ked stlacim sipku pre ovladanie lode tak ten meteor sa resetne a zacne ist znova od zaciatku



a tu if keypressed
readkey :
tu uz podla pohybu kde chcem ist - takto funguje lod
until

Neviem no ci si s tym dam rady ked tak vedeli by ste mi nieco ine poradit ? potrebujem nejaku pracu nemoze to byt uplne lahke lebo je to zaverecna
a hada nechcem lebo to ma uz skoro kazdy ono najlepsie nieco v grafike

a dik za postrehy
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Pascal praca

Príspevok od používateľa BX »

Ja som dávnejšie robil tetris, alebo takú hlúposť na štýl supaplex.

Čo sa tých meteoritov týka, určite máš inicializačný kód niekde kde nemá byť. Bez ukážky kódu ti inak nepomôžeme.
Napísať odpoveď