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 ?
Pascal praca
-
94jakub
Guru wannabe
- Príspevky: 2037
- Registrovaný: 15 dec 2006, 13:18
- Bydlisko: Martin/BA
- Kontaktovať používateľa:
Re: Pascal praca
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
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Pascal praca
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
Re: Pascal praca
Takúto hru v pascale, celkom odvážne. Nechcelo by sa mi
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:
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
No a teraz UpravMeteority:
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 
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
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)
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;
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;
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
Re: Pascal praca
Diky za rady zajra sa na to pozriem riadne.
jj rad by som este strielal do nich
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
jj rad by som este strielal do nich
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
Re: Pascal praca
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.
Č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.