我第一次使用Lua,当然需要检查一下以了解如何实现某些代码。
要在Gideros中创建顶点,请输入以下代码:
mesh:setVertex(index, x, y)
但是,我还想使用z坐标。 我一直在检查,但没有找到任何帮助。有谁知道Gideros是否有这方面的方法,或者是否有任何关于设置z坐标的提示和技巧?
答案 0 :(得分:1)
首先,这些功能不是由Lua提供的,而是由Gideros Lua API提供的。 在原生Lua中没有网格或类似的东西。
参考参考资料Gideros Lua API参考手册将为您提供一些有价值的提示:
http://docs.giderosmobile.com/reference/gideros/Mesh#Mesh
网格可以是2D或3D,后者需要一个额外的Z坐标 在它的顶点。
http://docs.giderosmobile.com/reference/gideros/Mesh/new
Mesh.new([is3d])
参数:
is3d:(boolean)指定此网格 期望Z坐标在其顶点数组中,因此是3D网格
因此,为了创建一个3d网格,您必须执行以下操作:
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)
应该可以正常工作。
你可以简单地尝试一下btw。这是免费的,它没有伤害,这是最好的学习方式!