2016-09-16 122 views
0

emscripten_set_canvas_size如何知道在我的HTML文件中有多少畫布需要調整大小,我該怎麼辦?
爲什麼只能有一個emscripten_set_main_loop,如果想要2個循環一個用於渲染,另一個用於物理,javascript中我會用​​和setIntervalemscripten畫布和主循環

回答

2

emscripten_set_canvas_size設置Emscripten畫布的大小,也就是Emscripten使用的Module對象的Module.canvas方法返回的畫布。

我知道一個Emscripten運行時無法支持多個畫布,或者一旦初始化Emscripten就可以更改活動畫布。但是,可以在同一個文檔中有多個Emscripten運行時間,每個都使用它自己的畫布。要做到這一點使用emcc編譯選項

-s MODULARIZE=1 -s EXPORT_NAME="some_export_name" 

這樣做了以後,模塊化Emscripten運行時可以在JavaScript中這樣的實例化:

some_export_name(OptionsModule); 

其中OptionsModuleModule對象的Emscripten運行時間將使用。這可以使用不同的Module對象多次完成,通常這些不同的對象將在其Module.canvas方法中返回不同的畫布HTML元素。這種模塊化的一個例子可以在here找到。

只能運行一個Emscripten主循環只是一個設計約束。通過在主循環處理程序中調用一個用於渲染的函數和一個用於物理的函數,可以模擬兩個循環。要以不同的時間間隔調用這些時間,自己跟蹤時間非常簡單(使用SDL_GetTicks)。