修复我的 roblox 拼图游戏的颜色触摸脚本
我有一款基于街机经典游戏 Q bert 的 roblox 拼图游戏,目标是改变所有砖块的颜色,同时避免敌人并获得高分,但我将添加一些自己的功能,以使其不会像以前那样重复,例如通过在平台上收集钥匙以解锁通往下一关的门等其他任务和像钻石这样的秘密物品,每 10 轮出现一次,收集一个可以让玩家获得一个额外的小人和 1 千万分。
目前游戏的情况如下 https://streamable.com/na46cu 问题是,颜色实际上确实会变化,但当我再次跳到这个砖块时它会改回它最初的颜色,而这种情况下最初的颜色是绿色,但是我希望它能保持在第一种颜色上,并且只有当玩家再次跳上砖块时才会变化,在游戏后期,我希望像这个例子[https://www.youtube.com/watch?v=9eXJWiNXpOo\]\[2\] 一样变得更加复杂和像拼图一样。
我尝试了一些方法,例如添加计时器,debounce 甚至完全分开脚本,但都没有效果,我当然也去寻找其他有类似问题的人的问题,但到目前为止我一直在努力寻找有相同问题的人。
local module = {} --module for the modulescript and for loop is created
local CollectionService = game:GetService("CollectionService")
for _, part,brick in pairs (CollectionService:GetTagged("blocks"))
do
part.Touched:Connect(function(hit) --Part connects with the touched property to the function with the parameter hit
if (hit.Parent:FindFirstChild("Humanoid"))
then
part.BrickColor = BrickColor.new ("Bright green")
wait (2)
part.BrickColor = BrickColor.new ("Eggplant")
-- local sound = workspace.Sound -- use "local sound = workspace.Sound", if there is already a sound object in the workspace
--sound.SoundId = "rbxassetid://4797903038" --replace quoted text with whatever sound id you need to use
--sound:Play()
end
end)
end
-- end)
--end
return module
我不是最好的程序员,但我知道编程的基础知识,并尝试过各种编程语言,例如 Python 和 c++,这些编程语言一旦掌握了基础,就不是那么难理解的,但解决问题和调试错误确实是非常棘手的。
我知道我可以尝试一个简单的 debounce 系统,但这仍然不能解决问题,而且它只会让代码运行一次并减慢它的速度。
我一直在各处寻找解决此问题的解决方案,但从未得到过答案,因此我一次性尝试 stackoverflow,看看能否在这里得到我需要的帮助。
- 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 module = {} --创建模块的模块脚本和循环所需的模块 local CollectionService = game:GetService("CollectionService") local DidParts = {} --初始化另一个表格以检查部件是否已在其中 for _, part,brick in pairs(CollectionService:GetTagged("blocks")) do part.Touched:Connect(function(hit) --将 part 与 Touched 属性连接到具有 hit 参数的函数 if hit.Parent:FindFirstChild("Humanoid") then if table.find(DidParts,part) then return --检查部件是否不在表格中,如果在则返回 end part.BrickColor = BrickColor.new("Bright green") wait(2) part.BrickColor = BrickColor.new("Eggplant") table.insert(DidParts,part) --完成所有代码后插入表格中 -- local sound = workspace.Sound -- 如果工作区域中已经有一个声音对象,则使用“local sound = workspace.Sound” -- sound.SoundId = "rbxassetid://4797903038" -- 将引用文本替换为所需使用的任何声音 id -- sound:Play() end end) end -- end) --end return module