首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Gideros中创建三维网格顶点

如何在Gideros中创建三维网格顶点
EN

Stack Overflow用户
提问于 2018-04-10 04:48:18
回答 1查看 101关注 0票数 1

我第一次使用Lua,当然需要检查一下以了解如何实现特定的代码。

要在吉德罗斯中创建顶点,有以下代码:

代码语言:javascript
复制
 mesh:setVertex(index, x, y)

但是,我也想使用z坐标。我一直在检查,但没有找到任何帮助。有没有人知道Gideros是否有这样的方法,或者是否有任何技巧和技巧来设置z坐标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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坐标,因此是一个三维网格

因此,为了创建三维网格,您必须执行如下操作:

代码语言:javascript
复制
local myMesh = Mesh.new(true)

虽然手册没有说您可以在setVertex中使用z坐标

http://docs.giderosmobile.com/reference/gideros/Mesh/setVertex

很有可能你能做到。

让我们来看看Gideros的源代码:

https://github.com/gideros/gideros/blob/1d4894fb5d39ef6c2375e7e3819cfc836da7672b/luabinding/meshbinder.cpp#L96-L109

代码语言:javascript
复制
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坐标,并将使用它。

所以

代码语言:javascript
复制
local myMesh = Mesh.new(true)
myMesh:SetVertex(1, 100, 20, 40)

应该能正常工作。

你可以简单的试一试。这是免费的,它不疼,这是最好的学习方式!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49745505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档