我正在开发一款使用OCaml SDL的小游戏。我没有找到任何关于它的文档,所以我有三个问题:
答案 0 :(得分:3)
1 - 我想在windows下使用ocaml sdl,所以任何人都可以帮助我 编译它,(我已经放弃了 在虚拟PC上安装linux)
你能让SDL在windows下运行并用它编译C程序吗?如果是这样,那么您应该阅读compiling ocaml with c programs in the manual.
上的章节2 - 是否有关于如何使用OCAML SDL的文档?
在包中有文档。我想这不是最好的,因为在ocaml中确实没有单一的包有很好的文档 - 我被允许夸大,不是吗?
要解决这个问题,您需要在SDL中探索所需的功能,然后在ocamlSDL的源目录中的MLI文件中找到相应的功能。这不应该太糟糕。看起来它很有条理。我不得不用其他包来做这件事。程序员有一些标准的命名约定,然后你真的只需要知道函数签名就可以了。
我会尽可能努力地尝试假装你只是直接调用SDL,因为大部分事情都应该那么简单。
3 - 我使用800x600窗口,我想代表一些图形 在里面,例如那个像素 代表背景,另一个代表 代表一块石头等等,是什么 最好的代表( 800x600)窗口?作为一般情况我 使用一个800 * 600的单元阵列,我 知道这是最丑陋的表现, 但是请提出任何建议
ocaml中的Hashtbls非常有效--ocaml实际上将它们用于变量范围。此外,任何哈希冲突都会产生一个元素列表,这对于多层数据来说可能很不错。
除此之外,您可能想要使用精灵。但是我认为你应该得到基础知识,然后再实现精灵 - 因为冒昧,这是我的实施方法。
<强> 编辑: 强>
根据您的评论和您目前的经验,我想提出最终建议......不要使用ocamlSDL。对于你正在做的事情,没有理由,特别是那些只是学习语言的人 - 这就是我收集的内容,如果我错了,请纠正我。我的建议是使用内置于ocaml中的机器独立的Graphics模块!它具有您为此简单游戏所需的所有功能。该模块非常简单,您应该可以直接进行设置。
答案 1 :(得分:2)
与nlucaroni的推测相反,ocamlsdl的documentation实际上相当不错。
ocamldoc生成的文档甚至包含大多数函数的描述,您很可能不必查看SDL的C文档。
我提到的页面也有在Windows上编译的说明,但我从未试图跟随它们。
答案 2 :(得分:0)
例如这里是模块绘制的界面,我们可以在屏幕上绘制像素:
val draw_player:int - &gt; int - &gt;单元
val draw_missile:int - &gt; int - &gt;单元
val draw_text_center:int - &gt; int - &gt; string - &gt;单元
输入playfield
val empty_playfield:int - &gt; int - &gt;球场
type pixel = Background |污垢|岩石
val set_playfield_pixel:playfield - &gt; int - &gt; int - &gt;像素 - &gt;单元
val draw_playfield:playfield - &gt;单元
val update:unit - &gt;单元
这些是我们用来设计游戏的功能!哈哈! 无论如何,要在windows中使用该模块(它本身使用ocamlsdl)我应该先编译它, 我的问题是,绘制每像素800x600像素的屏幕是个好主意吗?并且为了表示该屏幕,例如说像素(xy)代表背景或游戏的另一部分,那可能是最好的代表?800x600的阵列,peronnaly我觉得不舒服,表演和...你知道!