Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Grafica e suoni

0 views
Skip to first unread message

Paolo

unread,
Mar 2, 2008, 1:23:43 PM3/2/08
to
Ciao, chiedo sempre per il pacman.
Sono riuscito a finirlo, però va molto lentamente, a causa della parte
grafica.
E' possibile aumentare la velocità di un programma in pascal, o esiste
qualche librearia grafica più leggera?
Inoltre vorrei sapere se è possibile mettere una musica di sottofondo, e
quindi riprodurre un file audio.
Paolo


Paolo

unread,
Mar 2, 2008, 1:24:43 PM3/2/08
to
Ho scaricato la libreria Ukeyb, e adesso va alla perfezione, anche se a
volte non mi funziona piů la tastiera...
Grazie mille.
Paolo

Paolo

unread,
Mar 3, 2008, 12:51:20 PM3/3/08
to

"Paolo" <men...@nospamtele2.it> ha scritto nel messaggio
news:MhCyj.160$UN6...@nntpserver.swip.net...

> Ho scaricato la libreria Ukeyb, e adesso va alla perfezione, anche se a
> volte non mi funziona più la tastiera...
> Grazie mille.
> Paolo
>
>
>

Scusate, ho sbagliato a postare il messaggio, qusto riguardava la
discussione precedente


Dreadnaut

unread,
Mar 3, 2008, 5:02:31 PM3/3/08
to
"Paolo" <men...@nospamtele2.it> ha scritto:

> Ho scaricato la libreria Ukeyb, e adesso va alla perfezione, anche se a

> volte non mi funziona più la tastiera...

ahhaha brillante :-) succede che librerie simili lascino le cose a metà,
e tu rimani senza interrupt della tastiera. Controlla bene di chiamare il
codice per disattivare la gestione della tastiera da parte della libreria
(dovrebbe esserci, o almeno spero), e che questo venga chiamato in ogni
punto in cui il programma può terminare (dovrebbe essercene solo uno, ma
non si sa mai)

Ora non ricordo esattamente, ma c'è qualcosa tipo ExitProcedure che ti
permette di settare una funzione che viene richiamata automaticamente
quando chiudi il programma. Potresti ripristinare li l'interrupt
originale, ed essere sicuro che la tastiera torni com'era prima.

--
Dreadnaut - http://dreadnaut.altervista.org/
(Life would be easier if I had the source code)

Il Razziatore

unread,
Mar 3, 2008, 8:15:40 PM3/3/08
to
Paolo ha scritto:

> Ciao, chiedo sempre per il pacman.
> Sono riuscito a finirlo, però va molto lentamente, a causa della parte
> grafica.

Una domanda banale. Usi funzioni del pascal ( della unit Graph ) o
scrivi direttamente in momoria?

> E' possibile aumentare la velocità di un programma in pascal, o esiste
> qualche librearia grafica più leggera?

Beh puoi scriverti una piccola unit che accede direttamente in memoria.
Ma dipende tutto da quello che devi fare. Per esempio dipende se devi
visualizare delle imagini da file.

> Inoltre vorrei sapere se è possibile mettere una musica di sottofondo, e
> quindi riprodurre un file audio.
>

Ovvio! Esiste una unit che si interfaccia direttamente con la scheda
sonora. Si chiamava SB qualcosa...

Ti consiglio di cercare su internet Arkanoid fatto in pascal. E'
spettacolare è la riproduzione di Arkanoid in pascal con tanto di
sorgenti. Si imparano tante cose.


--
Il Razziatore,
"Lo sviluppo di una nazione si misura anche dallo stato della sua rete
ferroviaria". Camillo Benso Conte di Cavour
"Per tutto quanto non previsto nel presente regolamento il capostazione
deve usare senno e ponderatezza." Regolamento d'esercizio FS
-----------------------------------------------
MSN : IlRazz...@netscape.net
ICQ : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

Il Razziatore

unread,
Mar 3, 2008, 8:22:27 PM3/3/08
to
Il Razziatore ha scritto:

> Ti consiglio di cercare su internet Arkanoid fatto in pascal. E'
> spettacolare è la riproduzione di Arkanoid in pascal con tanto di
> sorgenti. Si imparano tante cose.
>
>

http://www.geocities.com/SiliconValley/Bay/6512/arkanoid.zip

Eccolo qui, buono studio ;)
Ti serve sia la unit FM che SND

Paolo

unread,
Mar 5, 2008, 12:58:19 PM3/5/08
to

"Dreadnaut" <drea...@gmail.com> ha scritto nel messaggio
news:Xns9A56E04A...@194.177.98.144...

No, esiste una procedura che si chiama restorekeybhandler, e che rimette le
cose a posto, solo che a volte non funziona, quindi per risistemare la
tastiera devo far partire un'altro programma in pascal vuoto, e allora
ritorna a funzionare.


Paolo

unread,
Mar 5, 2008, 1:01:41 PM3/5/08
to

"Il Razziatore" <ilrazz...@gmail.com> ha scritto nel messaggio
news:47cca2be$0$10616$4faf...@reader2.news.tin.it...
> http://mpp.iwebland.comù


Cosa significa "che accede direttamente in memoria" io non conosco il
linguaggio assembly, quindi uso per forza la unit graph.
Sono riuscito a velocizzare alcuni processi, però richiede del tempo la
lettura di un pixel sullo schermo, il disegno di figure circolari piene, e
l'utilizzo del comando putimage.
Colgo l'occasione per un'altra domanda: Come si può caricare un immagine da
file bmp e viceversa?


Dreadnaut

unread,
Mar 6, 2008, 7:35:20 AM3/6/08
to
"Paolo" <men...@nospamtele2.it> ha scritto:

> No, esiste una procedura che si chiama restorekeybhandler, e che
> rimette le cose a posto, solo che a volte non funziona, quindi per
> risistemare la tastiera devo far partire un'altro programma in pascal
> vuoto, e allora ritorna a funzionare.

Allora ti conviene farlo tu a mano: salvi l'indirizzo della procedura di
interrupt prima di attivare la libreria, e lo ripristini alla fine :)

Il Razziatore

unread,
Mar 6, 2008, 10:33:32 AM3/6/08
to
Paolo ha scritto:

Non c'è bisogno di conosce l'assemply per accende alla memoria. La
memoria grafica è un array dove ogni elemento è un pixel contenente il
colore. In pratica ti basta fare

MemoriaGrafica[X,Y] := Rosso;

Per assegare al pixel X, Y il colore Rosso.

la memoria iniza dalla coordinata (0, 0) e continua, basta che usi
l'istruzione Mem[] utilizando SegA000 per accedere alla memoria grafica:

Mem[ SegA000, Y * W + X ] := ColorePixel;

per calcolare l'offset dipende dalla risoluzione ( il paramento W ).

> Sono riuscito a velocizzare alcuni processi, però richiede del tempo la

> lettura di un pixel sullo schermo.

Usando l'accesso diretto in memoria risparmi parecchio tempo.

> il disegno di figure circolari piene, e
> l'utilizzo del comando putimage.
> Colgo l'occasione per un'altra domanda: Come si può caricare un immagine da
> file bmp e viceversa?

devi farti un loader che legga il formato bitmap ( è molto semplice ;) )

Dreadnaut

unread,
Mar 7, 2008, 8:30:55 AM3/7/08
to
Il Razziatore <ilrazz...@gmail.com> ha scritto:

> e' molto semplice ;)

dopo che sai come si fa, si, e' molto semplice. Mi ci è voluta una
settimana al tempo a capire come diavolo erano fatti quei file, quando
anche non trovavi il formato (o il loader) bello pronto su internet :-p

devi gestire la palette, devi gestire i bit-per-pixel, devi gestire la
compressione se c'è. Tutto, ma non semplice :)

a questo punto la cosa più saggia è cercare un simpatica libreria già
pronta.

Il Razziatore

unread,
Mar 7, 2008, 11:16:26 AM3/7/08
to
Dreadnaut ha scritto:

> Il Razziatore <ilrazz...@gmail.com> ha scritto:
>
>> e' molto semplice ;)
>
> dopo che sai come si fa, si, e' molto semplice. Mi ci è voluta una
> settimana al tempo a capire come diavolo erano fatti quei file, quando
> anche non trovavi il formato (o il loader) bello pronto su internet :-p
>
> devi gestire la palette, devi gestire i bit-per-pixel, devi gestire la
> compressione se c'è. Tutto, ma non semplice :)
>

Le bmp non sono compresse. Cioè supportano la compressione OLE ma
smanettando un po' non ho mai bmp compresse. Non so se le BMP abbiamo la
palette già inclusa oppure usano quella di sistema.

The Programmer's File and Data Resource ( http://www.wotsit.org/ ) puo'
essere mooooolto utile in queste ricerche. Comunque il mio "semplice"
era riferito ad altri formati, come ad esempio il JPG, che sono mooolto
più complessi. Il BMP non è poi tutto sto complicato, Se c'è una palette
è semplicemente una sfilsa di indici della palette, e se si usa la
stessa palette anche nel gioco basta fare un becero copia e incolla il
nemoria. Un ciclo for e via :)

Infondo il BMP è un formato elementare HEADER + DATI RAW...

> a questo punto la cosa più saggia è cercare un simpatica libreria già
> pronta.
>


--

Il Razziatore

unread,
Mar 7, 2008, 11:31:10 AM3/7/08
to
Il Razziatore ha scritto:

> Infondo il BMP è un formato elementare HEADER + DATI RAW...
>

Un buon resource per le BMP è:

http://www.fortunecity.com/skyscraper/windows/364/bmpffrmt.html

C'è tutto ( compresa la palette :D )

Dreadnaut

unread,
Mar 7, 2008, 1:27:15 PM3/7/08
to
Il Razziatore <ilrazz...@gmail.com> ha scritto:

> Infondo il BMP e' un formato elementare HEADER + DATI RAW...

smettila, ti stai scavando la fossa mostrando ignoranza :p

I file .bmp sono contenitori, quindi possono contenere un buon numero di
compressioni diverse: RLE, bit field, e persino png o jpeg. E visto che si
possono avere da 2 a 32 bpp, ti tocca tenere in cosiderazioni tutti i
possibili formati della palette (o del true-color, senza palette), il che
non è semplice quanto sembri - senza contare che in qualche modo devi
anche mostrarle queste immagini.

Se lui si salva tutti i file in un formato particolare, bene, altrimenti
non mi dire che aprire bmp in generale sia facile, perché vuol dire
semplicemente che non hai idea di cosa ci sia dentro un .bmp :|

e se hai bisogno di informazioni precise, qua:
- http://en.wikipedia.org/wiki/BMP_file_format

Il Razziatore

unread,
Mar 7, 2008, 4:10:13 PM3/7/08
to
Dreadnaut ha scritto:

> Il Razziatore <ilrazz...@gmail.com> ha scritto:
>
>> Infondo il BMP e' un formato elementare HEADER + DATI RAW...
>
> smettila, ti stai scavando la fossa mostrando ignoranza :p
>

E perché mai? Io ho detto semplicemente che normalmente. Nel 99% dei
casi una BMP è un file semplice da leggere e interpreatre, quasi lineare.

> I file .bmp sono contenitori, quindi possono contenere un buon numero di
> compressioni diverse: RLE, bit field, e persino png o jpeg. E visto che si
> possono avere da 2 a 32 bpp, ti tocca tenere in cosiderazioni tutti i
> possibili formati della palette (o del true-color, senza palette), il che
> non è semplice quanto sembri - senza contare che in qualche modo devi
> anche mostrarle queste immagini.

Vero il BMP è un formato contenitore, puoi anche implementare una
compressione tua, nessuno te lo vieta. Puo' anche implementare una
animazione. Ma fino a qualche anno fa la compressione era solo RLE. Non
mi dirai che se scarichi da internet una libreria BMP per TP ci trovi
dentro la compressione JPG/PNG perché non ci credo.

Tanto è vero che paint all'origine suportava solo BMP senza le JPEG e
solo da windows XP ha suportato anche le PNG. Se Paint suportava la
compressione PNG per le BMP perché non suportarle nativamente? Le BMP
sono un formato contenitore ma sei tu a decidere quale "codec" ( per
così dire ) implementare.

Ma se tu prendi i file salvati con paint quanti di questi saranno
compressi? Io non ho mai visto file bmp compressi... non mi sono mai
capitati a te si?

( PS: perché il mio link non ti piaceva? )

Dreadnaut

unread,
Mar 8, 2008, 9:52:57 AM3/8/08
to
Il Razziatore <ilrazz...@gmail.com> ha scritto:

> Vero il BMP e' un formato contenitore, puoi anche implementare una

> compressione tua, nessuno te lo vieta.

A parte il fatto che nessun programma leggerą il tuo file, puoi fare
quello che vuoi con qualsiasi formato. Nonsense di nuovo :-p

> Puo' anche implementare una animazione.

No, non puņ. L'unico modo (finto) é quello di mettere i frame uno accanto
all'altro in una singola immagine, e poi tagliarla e animarla quando la
carichi. Non hai nemmeno letto la pagina che tu stesso hai linkato, quando
dice "It [...] is (by itself) not capable of storing animation" :)

Il Razziatore

unread,
Mar 8, 2008, 12:22:23 PM3/8/08
to
Dreadnaut ha scritto:

> Il Razziatore <ilrazz...@gmail.com> ha scritto:
>
>> Vero il BMP e' un formato contenitore, puoi anche implementare una
>> compressione tua, nessuno te lo vieta.
>
> A parte il fatto che nessun programma leggerà il tuo file, puoi fare
> quello che vuoi con qualsiasi formato. Nonsense di nuovo :-p
>
>> Puo' anche implementare una animazione.
>
> No, non può. L'unico modo (finto) é quello di mettere i frame uno accanto
> all'altro in una singola immagine, e poi tagliarla e animarla quando la
> carichi. Non hai nemmeno letto la pagina che tu stesso hai linkato, quando
> dice "It [...] is (by itself) not capable of storing animation" :)

Si che l'ho letto :) e mettere un frame accanto all'altro ( a dire il
vero, uno sotto l'altro ) è pur sempre un modo di implementarlo.

Vero nessuno ( tranne tu ) lo leggerà. Ma credi che all'inzio quelcuno
leggeva i PNG?

Comunque questa discussione ( sterile ) non mi ha fatto cambiare idea.I
BMP sono nati ( e sono tutt'ora ) un formato semplice. Elementare. Che
nel 99% sono non compressi. Nel caso di BMP a 24bit poi...

Dreadnaut

unread,
Mar 11, 2008, 8:13:07 AM3/11/08
to
boh non rispondo neanche perché mi hai fatto passare la voglia di spiegare
perche' le cose che dici sono errate, e perche' non dovrebbero essere
scritte su un newsgroup dove magari la gente ci crede.

Se vuoi vivere nel tuo mondo di terminologie imprecise e concetti fumosi,
orgoglioso del tuo ruolo di difensore del Vero (tm) contro gli infami
attacchi di chi ti vuole "far cambiare idea", fai pure :|

Di passaggio a nord ovest

unread,
Mar 14, 2008, 4:41:04 PM3/14/08
to

"Il Razziatore" <ilrazz...@gmail.com> ha scritto nel messaggio
news:47d1af3b$0$37206$4faf...@reader3.news.tin.it...

Non mi son spulciato gli internals
di bmp, ma può essere che intenda per esempio che se c' è una sfilza di
270 pixel color nero
anzichè un array di 0,0,0,0,0,0,0,ecc c' è un costrutto:
"270 caselle da qui in poi son "0" il che occupa meno spazio dell' array??


0 new messages