Corona“试图移除一个已经被移除的对象”的错误提示。
2013-6-26 16:37:16
收藏:0
阅读:110
评论:3
我正在制作一个简单的“打砖块”游戏,但我在重新加载地图时遇到了问题。 例如:如果我开始第1关,打碎了一些砖块并输了,然后我再次加载同样的地图。下一次当球与我之前“碰过”的相同砖块碰撞时,会给我一个错误“尝试删除已经删除的对象”
local map = lime.loadMap("maps/" .. currentLevel .. ".tmx") // 加载地图
local layer = map:getTileLayer("bricks_1") // 获取砖块层
local visual = lime.createVisual(map) // 创建视觉地图
local physical = lime.buildPhysical(map) // 创建物理地图
function removeBricks(event) // 移除砖块
if event.other.isBrick then // 如果是砖块
local brick = event.other // 获取砖块
transition.to(brick, {time = 20, alpha = 0}) // 动画渐变消失
score = score + brick.scoreValue // 增加分数
ScoreNum.text = score // 更新分数文本
-- remove brick
brick:removeSelf() // 移除砖块
brick = nil
...
点赞
用户1682268
我认为第二次进入游戏时,事件 .other 没有被创建。如果您正在使用故事板,您可以尝试在游戏结束后删除场景,这样当您再次进入游戏时,它将重新创建所有对象。
i think the second time you go to your game the event.other is not created are you using storyboard if so you can try to remove the scene after the game is over so when you go to your game again it will recreate all the object
2013-06-27 00:36:58
用户1870706
如果你在使用物理引擎,你在删除对象本身之前也需要执行 physics.removeBody(brick) 命令,这样它才能从物理引擎中解除。如果不这样做,物理引擎会认为对象仍然存在。
2013-07-01 00:36:14
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的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 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你尝试过这个吗?
transition.to(brick, {time = 20, alpha = 0, onComplete = function() if brick then brick:removeSelf() brick = nil end end})