Kezdőoldal » Számítástechnika » Programozás » Free Pascal-ban hogyan kell...

Free Pascal-ban hogyan kell animációt készíteni?

Figyelt kérdés

Free Pascal-ban kéne megoldani valahogy, hogy nyilakkal tudjak mozgatni pl. egy kört.

Próbáltam letörölni a képernyőt és újrarajzolni mindent az új koordinátákba, de így villódzik. Szóval a cleardevice; nem vált be. Van esetleg valami más megoldás ahol nem fog villódzani a kép?



2017. febr. 18. 23:52
1 2
 1/18 anonim ***** válasza:

case


Hogyha jobbra mutató nyilat nyomod meg akkor az első koordináta nem változik, viszont a második nő 1-el.

2017. febr. 19. 00:11
Hasznos számodra ez a válasz?
 2/18 anonim ***** válasza:

a) teszel a kör köré egy átlátszó színű négyzetet, így az mindig törli a képernyőt, ha csak kicsit mozgatod

b) tenmagad váltod vissza háttérszínűre a pixeleket minden mozgatás után

2017. febr. 19. 00:11
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
a) bocs, nem átlátszó, háttérszínű
2017. febr. 19. 00:13
Hasznos számodra ez a válasz?
 4/18 tabaki ***** válasza:
Erre képernyőlapozást szokás alkalmazni, tehát a következő fázist mindig a háttérben lévő lapon rajzolod meg, és amikor kész van, azt teszed láthatóvá. A SetActivePage és SetVisualPage körül keresgélj. Részletekkel nem tudok szolgálni. Valaha régen én is próbálgattam, működik is, csak már mindent elfelejtettem azóta. A Lazarushoz képest kínszenvedés, de te ettől még kísérletezhetsz vele.
2017. febr. 19. 02:12
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:

"Van esetleg valami más megoldás ahol nem fog villódzani a kép?"


Van hát! Paintboxba kell rajzolni és be kell kapcsolni a double buffering-et.

2017. febr. 19. 03:01
Hasznos számodra ez a válasz?
 6/18 anonim ***** válasza:
Ha pure konzolban akarnád ezt, grafikus módban, akkor el kell keserítselek, a konzol számára kiosztott erőforrások nagyon szűkösek és tekintve, hogy csak kompatibility mód van (pontosabban egy emulációs layer), nem lehet direktben elérni a videomemóriát (a régi DOS-os pascalban lehetett, vagy a freepascal dos-os verziójában) így a villámgyors grafika konzolban elég esetleges.
2017. febr. 19. 03:32
Hasznos számodra ez a válasz?
 7/18 anonim ***** válasza:
Használj SDL-t, vagy hasonló célú keretrendszert.
2017. febr. 19. 09:42
Hasznos számodra ez a válasz?
 8/18 A kérdező kommentje:

A régi pascalról van szó. SetActivePage -s megoldást megtaláltam én is, de nekem valahogy nem akar működni.


var

page:integer;

...

page=0;

repeat

setactivepage(page);

cleardevice();


{rajzolás}


setvisualpage(page);

page=1-page;

until k='k';


De még így is van villódzás. Elég sok mindent kell kirajzolni, és lassan rajzol.

2017. febr. 19. 15:06
 9/18 anonim ***** válasza:

Két lap kell. Az egyikre rajzolsz a háttérben, majd megjeleníted. Lapot váltasz, razolsz a háttérben lévő lapra, majd megjeleníted azt, és így tovább...

Free Pascalt nem ismerem, de régen Turbo Pascal (DOS) 640x480-as felbontásban csak egy lapod volt, 320x240-es felbontásban kettő.

2017. febr. 19. 17:41
Hasznos számodra ez a válasz?
 10/18 A kérdező kommentje:
Próbálgattam de sehogy se jön össze. Pedig már kipróbáltam mindent. Egy példa programot tudsz küldeni? Mert nekem ez nem akar menni.
2017. febr. 19. 20:43
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!