- Hands-On Game Development with WebAssembly
- Rick Battagline
- 198字
- 2021-06-24 13:41:05
The ShipPosition function
If this were production quality code, I would be doing a lot of the work that I am currently doing inside of the initialization routine in this rendering function. Moving sprites around independently on the canvas would require updates to our array buffers. I probably wouldn't define my geometry in the way I did, that is, calculating the sizes by hand. I am not currently making any changes to the array buffer or the texture buffer; I am trying to keep this code to the bare minimum necessary to render a sprite onto the canvas using WebGL. Here is what I have:
function ShipPosition( ship_x, ship_y ) {
if( image_width == 0 ) {
return;
}
gl.uniform4fv(u_translate_location, [ship_x, ship_y, 0.0, 0.0]);
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
- The first few lines check to see whether the image download has completed. If not, we will exit out of this function:
if( image_width == 0 ) {
return;
}
- Next, we tell WebGL to load the uniform u_translate uniform variable with our spaceship's coordinates:
gl.uniform4fv(u_translate_location, [ship_x, ship_y, 0.0, 0.0]);
- Finally, we instruct WebGL to draw triangles with the six vertices in our array buffer:
gl.drawArrays(gl.TRIANGLES, 0, 6);
推薦閱讀
- 用“芯”探核:龍芯派開發實戰
- Learning SQL Server Reporting Services 2012
- Arduino入門基礎教程
- Creating Dynamic UI with Android Fragments
- 嵌入式系統設計教程
- 電腦維護365問
- 筆記本電腦維修不是事兒(第2版)
- 筆記本電腦應用技巧
- Source SDK Game Development Essentials
- 單片機技術及應用
- Python Machine Learning Blueprints
- Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境
- The Machine Learning Workshop
- MicroPython Cookbook
- INSTANT Cinema 4D Starter