我第一次使用Lua,当然需要检查一下以了解如何实现特定的代码。
要在吉德罗斯中创建顶点,有以下代码:
mesh:setVertex(index, x, y)但是,我也想使用z坐标。我一直在检查,但没有找到任何帮助。有没有人知道Gideros是否有这样的方法,或者是否有任何技巧和技巧来设置z坐标?
发布于 2018-04-10 08:29:06
首先,这些函数不是由Lua提供的,而是由Gideros提供的。在土生土长的Lua中没有网格或类似的东西。
参考参考Gideros Lua API参考手册将给您一些有价值的提示:
http://docs.giderosmobile.com/reference/gideros/Mesh#Mesh
网格可以是二维的,也可以是三维的,后者期望在其顶点上有一个附加的Z坐标。
http://docs.giderosmobile.com/reference/gideros/Mesh/new
Mesh.new(is3d) 参数: is3d:(布尔值)指定此网格在其顶点数组中期望Z坐标,因此是一个三维网格
因此,为了创建三维网格,您必须执行如下操作:
local myMesh = Mesh.new(true)虽然手册没有说您可以在setVertex中使用z坐标
http://docs.giderosmobile.com/reference/gideros/Mesh/setVertex
很有可能你能做到。
让我们来看看Gideros的源代码:
int MeshBinder::setVertex(lua_State *L)
{
Binder binder(L);
GMesh *mesh = static_cast<GMesh*>(binder.getInstance("Mesh", 1));
int i = luaL_checkinteger(L, 2) - 1;
float x = luaL_checknumber(L, 3);
float y = luaL_checknumber(L, 4);
float z = luaL_optnumber(L, 5, 0.0);
mesh->setVertex(i, x, y, z);
return 0;
}在这里,您可以看到,您确实可以提供一个z坐标,并将使用它。
所以
local myMesh = Mesh.new(true)
myMesh:SetVertex(1, 100, 20, 40)应该能正常工作。
你可以简单的试一试。这是免费的,它不疼,这是最好的学习方式!
https://stackoverflow.com/questions/49745505
复制相似问题