Tutta la documentazione là fuori su OCaml Sdl?
Domanda
Sto sviluppando un piccolo gioco con OCaml SDL per questo. Non ho trovato alcuna documentazione là fuori su di esso, quindi ho tre domande:
- Voglio usare OCaml SDL sotto le finestre, quindi chiunque può aiutare come posso compilarlo, (ho già rinunciato e installato Linux su un pc virtuale)
- C'è qualche documentazione su come usare OCaml SDL?
- Sto usando una finestra di 800x600, e voglio rappresentare alcuni elementi grafici all'interno, per esempio quel pixel rappresenta lo sfondo, l'altro rappresenta una roccia e così via, che cosa è la migliore rappresentazione di che (il 800x600) finestra? come un caso generale Sto utilizzando una matrice di 800 * 600 celle.
Soluzione
1 - voglio usare ocaml sdl sotto le finestre, quindi chiunque può aiutare come posso compilarlo, (ho già rinunciato e linux installato su un pc virtuale)
Si può ottenere la SDL lavorare sotto le finestre e compilare i programmi in C con esso? Se così si dovrebbe poi alzarsi sul letto il capitolo sul compilazione OCaml con programmi C nel manuale.
2 - Esiste una documentazione su come utilizzare OCAML SDL
?
Nel pacchetto c'è documentazione. Immagino che questa non è la migliore, dal momento che non c'è davvero un unico pacchetto in OCaml che ha una documentazione decente --I'm permesso a esagerare, non è vero?
Per aggirare il problema, è necessario esplorare ciò funzioni è necessario nel SDL poi trovare il corrispondente in file MLI nella directory sorgente del ocamlSDL. Non dovrebbe essere troppo male. Sembra come se fosse abbastanza organizzato. Ho avuto a che fare questo con altri pacchetti. I programmatori hanno alcune convenzioni di denominazione standard, e quindi è davvero solo bisogno di sapere la firma funzioni e tu sei un andare.
Vorrei provare, il più forte possibile, per andare sulla tua attività facendo finta si sta solo chiamando la SDL direttamente --per la maggior parte dovrebbe essere così facile.
3 - Sto utilizzando una finestra di 800x600, e voglio rappresentare alcuni elementi grafici all'interno, per esempio quel pixel rappresenta lo sfondo, l'altra rappresenta una roccia e così via, che cosa è la migliore rappresentazione di che (il 800x600) finestra? come un caso AM General utilizzando una matrice di 800 * 600 cellule, I so che è la rappresentazione più brutto, ma tutti i suggerimenti si prega
Hashtbls in OCaml sono abbastanza efficienti --ocaml in realtà li utilizza per la portata delle variabili. Più eventuali collisioni hash risultato in una lista di elementi, che potrebbe essere piacevole per più livelli di dati.
A parte ciò, si potrebbe desiderare di utilizzare gli sprite. Ma penso che si dovrebbe avere le basi in corso, quindi implementano sprite in seguito --sorry per presunzione, è il mio metodo di implementazione.
EDIT:
In base alle vostre osservazioni e la tua esperienza corrente Voglio fare un suggerimento finale ... Non utilizzare l'ocamlSDL. Per quello che state facendo non v'è alcuna ragione, soprattutto qualcuno che sta imparando la lingua --che è quello che ho raccolto, per favore correggetemi se sbaglio. La mia raccomandazione è di usare il modulo Graphics che è indipendente dalla macchina che è costruito in OCaml! Ha tutte le funzionalità è necessario fare ciò che è necessario fare per questo semplice gioco. Il modulo è piuttosto semplice e si dovrebbe essere in grado di saltare a destra in impostare le cose.
Altri suggerimenti
Al contrario di quanto suggerisce nlucaroni trollishly, il di ocamlsdl è in realtà abbastanza buono.
L'ocamldoc generato documentazione ha anche descrizioni per la maggior parte delle funzioni, è molto probabilmente non dovrà guardare in C doc di SDL.
La pagina ho citato anche ha le istruzioni per la compilazione su Windows se non ho mai provato a seguirli.
per esempio qui è l'interfaccia del sorteggio del modulo, che siamo in grado di disegnare i pixel sullo schermo:
val draw_player: int -> int -> Unità
val draw_missile: int -> int -> Unità
val draw_text_center: int -> int -> string -> Unità
Tipo di campo di gioco
val empty_playfield: int -> int -> campo di gioco
tipo di pixel = Sfondo | Dirt | Rock
val set_playfield_pixel: campo di gioco -> int -> int -> pixel -> Unità
val draw_playfield: campo di gioco -> Unità
Aggiornamento val: unit -> Unità
queste sono le funzioni che usiamo per progettare il nostro gioco !!! così povero ah! comunque, di utilizzare quel modulo in finestre (che si usano ocamlsdl) i dovrebbe compilarlo prima, la mia domanda è, è una buona idea per disegnare uno schermo di 800x600 pixel per pixel? e di rappresentare quello schermo, a dire per esempio che il pixel (xy) rappresenta uno sfondo o un altro pezzo del gioco, quello che può essere il miglior representaion di che? una serie di 800x600, peronnaly non mi sento bene con quello, le prestazioni e ... si KNO!