Есть какая-нибудь документация по OCaml Sdl?

Я разрабатываю небольшую игру, используя для этого OCaml SDL. Я не нашел там документации по этому поводу, поэтому у меня есть три вопроса:

  1. Я хочу использовать OCaml SDL под Windows, чтобы кто-нибудь мог помочь, как я могу его скомпилировать (я уже сдался и установил Linux на виртуальный компьютер)
  2. Есть ли документация по использованию OCaml SDL?
  3. Я использую окно 800x600, и я хочу изобразить некоторую графику внутри, например, этот пиксель представляет собой фон, другой - камень и так далее, как лучше всего представить это окно (800x600)? в общем случае я использую массив из 800 * 600 ячеек.

person 0xFF    schedule 23.02.2009    source источник


Ответы (3)


1 - Я хочу использовать ocaml sdl под Windows, чтобы кто-нибудь мог помочь, как я могу его скомпилировать (я уже сдался и установил Linux на виртуальный компьютер)

Можете ли вы заставить SDL работать под Windows и компилировать с ним программы на языке C? В таком случае вам следует сразу же приступить к чтению главы о компиляции ocaml. с программами на c в руководстве.

2 - Есть ли документация по использованию OCAML SDL?

В пакете есть документация. Я полагаю, что это не лучший вариант, поскольку в ocaml действительно нет ни одного пакета с приличной документацией - я могу преувеличивать, не так ли?

Чтобы обойти это, вам нужно изучить, какие функции вам нужны в SDL, а затем найти соответствующую функцию в файлах MLI в исходном каталоге ocamlSDL. Это не должно быть так уж плохо. Вроде все довольно организовано. Пришлось проделать это с другими пакетами. У программистов есть некоторые стандартные соглашения об именах, и тогда вам действительно просто нужно знать сигнатуру функций, и все готово.

Я бы постарался изо всех сил заниматься вашими делами, делая вид, что вы просто вызываете SDL напрямую - по большей части это должно быть так просто.

3 - Я использую окно 800x600, и я хочу изобразить некоторую графику внутри, например, этот пиксель представляет собой фон, другой - камень и т. Д., Как лучше всего представить это окно (800x600)? в общем случае я использую массив из 800 * 600 ячеек, я знаю, что это самое уродливое представление, но любые предложения, пожалуйста

Hashtbls в ocaml довольно эффективны --ocaml фактически использует их для переменных. Кроме того, любые конфликты хешей приводят к появлению списка элементов, что может быть удобно для нескольких уровней данных.

В остальном вы можете использовать спрайты. Но я думаю, что вам следует освоить основы, а затем реализовать спрайты позже - извините за самонадеянность, это мой метод реализации.

ИЗМЕНИТЬ:

Основываясь на ваших комментариях и вашем текущем опыте, я хочу сделать последнее предложение ... Не используйте ocamlSDL. Для того, что вы делаете, нет причин, особенно для тех, кто просто изучает язык - как я понял, пожалуйста, поправьте меня, если я ошибаюсь. Я рекомендую использовать модуль Graphics, который машинно-независимый, встроенный в ocaml! В нем есть все функции, которые вам понадобятся, чтобы делать то, что вам нужно для этой простой игры. Модуль довольно прост, и вы сможете сразу приступить к настройке.

person nlucaroni    schedule 23.02.2009
comment
о боже ... ну, для sdl под окнами он не работает под окнами, так как я должен сделать (в linux-подобных средствах) его, прежде чем ссылаться на него, для документации это нормально, а для hashtbls и спрайтов я не могу понять действительно, как это использовать, так как я новичок в домене, но спасибо очень хорошо !!! - person 0xFF; 24.02.2009
comment
а нельзя сделать SDL под windows? Что ж, конечно, ocaml не будет знать, как получить доступ к библиотеке, которой нет! - person nlucaroni; 24.02.2009
comment
спасибо, но они предоставляют нам уже предоставляют нам некоторые модули рисования, которые используют ocamlsdl, поэтому мы должны их использовать, в любом случае это был хороший ответ, спасибо. - person 0xFF; 24.02.2009

Вопреки тому, что предлагает nlucaroni trollish, документация ocamlsdl на самом деле неплохая.

В документации, сгенерированной ocamldoc, даже есть описания для большинства функций, вам, скорее всего, не придется заглядывать в C-документацию SDL.

На упомянутой странице также есть инструкции по компиляции в Windows, хотя я никогда не пытался им следовать.

person Daniel Bünzli    schedule 01.05.2013

например, вот интерфейс модуля рисования, с помощью которого мы можем рисовать пиксели на экране:

val draw_player: int -> int -> unit

val draw_missile: int -> int -> unit

val draw_text_center: int -> int -> строка -> единица

тип игровое поле

val empty_playfield: int -> int -> игровое поле

тип пиксель = Фон | Грязь | Камень

val set_playfield_pixel: playfield -> int -> int -> pixel -> unit

val draw_playfield: playfield -> юнит

обновление val: единица -> единица

это функция, которую мы используем для разработки нашей игры !!! так бедный ха! в любом случае, чтобы использовать этот модуль в Windows (который сам использует ocamlsdl), я должен сначала его скомпилировать, мой вопрос: это хорошая идея рисовать экран 800x600 пикселей на пиксель? и для представления этого экрана, например, чтобы сказать, что пиксель (xy) представляет собой фон или другую часть игры, что может быть лучшим представлением этого? массив 800x600, поначалу я не чувствую себя комфортно с этим, производительность и ... вы знаете!

person 0xFF    schedule 24.02.2009