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:

  1. Voglio usare OCaml SDL sotto le finestre, quindi chiunque può aiutare come posso compilarlo, (ho già rinunciato e installato Linux su un pc virtuale)
  2. C'è qualche documentazione su come usare OCaml SDL?
  3. 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.
È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top