如何在触摸时删除克隆体
2019-7-12 0:25:39
收藏:0
阅读:76
评论:1
我正在编写一个程序,该程序将创建一堆克隆体,当克隆体被点击时,它将删除该克隆体。我只想删除被点击的克隆体。我在触摸事件侦听器方面遇到了问题。它说我正在尝试索引空变量,但是我之前已经定义了它。
我尝试将变量更改为全局变量。
显示.setDefault("background",0,0,200)
math.randomseed(os.time())
local boat = display.newImage("boatt.png")
boat.x = 163
boat.y = 225
local score = 0
local spawnCnt = 0
local spawnTable = {}
local startTime = os.time()
local startTime2 = os.time()
local fish_tapped
local function spawn()
local obj = display.newImageRect("fishpic.png",70,70)
obj.x = math.random(1,300)
obj.y =(0-数学随机(30,400))
obj.isDone = false
- 注意:第二个参数是不带括号的函数名称
obj:addEventListener("touch",touched()) - 我增加了括号
return obj
end
local function onSpawn()
spawnCnt = spawnCnt + 1
spawnTable [spawnCnt] = spawn()
end
local function movement(事件)
-使用计时器生成对象
如果 os.time()- startTime > = 1 then
onSpawn()
startTime = os.time()
end
-移动对象
如果 spawnCnt > 0 then
for i = 1,spawnCnt do
if spawnTable [i] .isDone == false then
如果 spawnTable [i] .y > = 600或 spawnTable [i] .fish_tapped == true then
spawnTable [i] .y = 700
spawnTable [i] .isDone = true
显示删除(self)
self = nil
其他
spawnTable [i] .y = spawnTable [i] .y + 4
结束
结束
结束
end
end
end
Runtime:addEventListener("enterFrame",movement)
-当我尝试使触摸事件侦听器中的touched()时,它说我正在调用空值,因此我将函数定义为全局的。
function touched(事件)
local obj = event.target
obj.fish_tapped = true
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 代码?

尝试(未测试)
local function movement (event) ... -- 替换 -- if spawnTable[i].y > 600 or fish_tapped == true then -- with if spawnTable[i].y > 600 or spawnTable[i].fish_tapped == true then ... end local function touched( event ) local obj = event.target obj.fish_tapped = true end local function spawn () local obj = display.newImageRect("fishpic.png",70,70) obj.x = math.random(1, 300) obj.y = (0 - math.random(30, 400)) obj.isDone = false -- 注意:第二个参数是不带括号的函数名 obj:addEventListener("touch", touched) return obj end了解更多: