生成 Corona SDK 中的等距网格瓷砖集
我在 tiled 中制作了一个等距地图,并将其导入 Corona SDK,现在正在尝试叠加网格层。我阅读了许多关于等距网格的信息,但似乎它们都指的是高度是宽度的一半的瓷砖集。(例如128x64像素)。我使用的瓷砖集需要网格为256x149像素,我认为我必须编辑网格生成函数以适应这个变化。任何帮助都将不胜感激!
问题的截图(使用原始向量):
[原始向量:] (https://i.stack.imgur.com/0vUNB.png) [https://image.ibb.co/emXpQR/Screen\_Shot\_2017\_12\_18\_at\_1\_35\_19\_PM.png] (https://image.ibb.co/emXpQR/Screen_Shot_2017_12_18_at_1_35_19_PM.png)
[已编辑的向量(代码中已注释的向量):] (https://i.stack.imgur.com/0vUNB.png) [https://image.ibb.co/ikxOkR/Screen\_Shot\_2017\_12\_18\_at\_1\_35\_54\_PM.png] (https://image.ibb.co/ikxOkR/Screen_Shot_2017_12_18_at_1_35_54_PM.png)
网格生成代码:
function drawGrid()
for row = 0, 16 do
local gridRow = {}
for col = 0, 9 do
-- 画一个菱形瓷砖
local vertices = { 0,-16, -64,16, 0,48, 64,16 }
-- 我编辑的顶点{ 0,-37.25,-128,37.25,0,111.75,128,37.25 }
local tile = display.newPolygon(group, 0, 0, vertices )
-- 绘制瓷砖的轮廓并使其透明
tile.strokeWidth = 1
tile:setStrokeColor( 0, 1, 1 )
tile.alpha = .4
local tileWidth = 256
local tileHeight = 149
-- 设置瓷砖的x和y坐标
local x = col * tileHeight
local y = row * tileHeight
tile.x = (x - y)
tile.y = ((tileHeight/2) + ((x + y)/2))
-- 让瓷砖可行走
gridRow[col] = 0
end
-- 将 gridRow 表添加到 map 表中
j_map[row] = gridRow
end
end
正如您在截图中看到的那样,瓷砖有点偏离地图的边缘。如果有人知道如何修复或需要更多有关信息,请让我知道!
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

for row = 0, 16 do local gridRow = {} for col = 0, 9 do
-- 绘制菱形状的瓷砖 --local vertices = { 0,-16, -64,16, 0,48, 64,16 } -- 我修改过的顶点坐标 local vertices = { 0,-37.25, -128,37.25, 0,111.75, 128,37.25 } local tile = display.newPolygon( group, 0, 0, vertices ) -- 给瓷砖描边并使其透明 tile.strokeWidth = 1 tile:setStrokeColor( 0, 1, 1 ) tile.alpha = .4 local tileWidth = 256 local tileHeight = 149 tile.x = -(row - col) * tileWidth * 0.5 tile.y = (row + col) * tileHeight * 0.5 -- 使瓷砖可行走 gridRow[col] = 0 end -- 把 gridRow 表格添加到 map 表格中 --j_map[row] = gridRowend
```
我从等距瓦片数学中得到了计算瓷砖
x和y位置的公式。祝你好运 :)