ROBLOX十字路口红绿灯系统(行人和车辆AI)

本文介绍了在ROBLOX游戏中创建一个包含红绿灯、行人AI和车辆AI的十字路口系统。红绿灯通过intvalue记录时间并控制通行状态。行人AI在黄灯时停止,车辆AI根据灯色进行直行或转弯。车辆行驶时存在偏移问题,通过碰撞组机制和空气墙解决,确保在平地上的直线行驶。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

希望做一个小的开放世界,为了使得这个世界不那么单调,需要有路上的行人和路上行走的汽车🚕。so,guys,let’s go。

红绿灯

一组红绿灯由三个圆形part构成,此外我们还需要一个带有gui的方形part通过intvalue记录时间,并显示在方块上,来显示等待的时间。由于时间是相同的,于是我们可以将这两个模块分开。
在这里插入图片描述
为了记录通行时间,我们引入一个名为time(intvalue)的值来记录。
如果我们搭建的是一个十字路口,那么就需要给出现在可以同行的道路,假定以坐标系正值的道路为前后,那么引入一个boolvalue(straight)来记录。绿灯时为straight值为true,另一边的道路为左右,该路绿灯时为straight值为false。
对于行人来说,在黄灯时,应该行走完,现在的路程,而不开始新的横穿操作,于是我设置了第三个值wait(boolvalue),绿灯时wait为false,黄灯时为true。
在这里插入图片描述

对于车辆来说,逻辑简化为车辆黄灯转弯,绿灯直行,红灯停止。

代码实现如下

//light system
local system = script.Parent
local light = {
   system.light1,system.light2,system.light3,system.light4}
local desk = {
   system.showtime.desk1,system.showtime.desk2,system.showtime.desk3,system.showtime.desk4}

local willchange={
   1,2}
local RunService = game:GetService("RunService")
local currenttime = 0
system.time.Value=0

RunService.Stepped:Connect(function(all, step)	
	
	system.time.Value = system.time.Value - step
	if	currenttime-system.time.Value>1 then
		currenttime = currenttime-1
	end
	for index = 1, #desk, 1 do
		desk[index].SurfaceGui.num.Text=	currenttime	
	end
	--system.desk.SurfaceGui.num.Text=	currenttime	
	--黄灯
	if system.time.Value <= 5 and system.time.Value>0 then
		system.wait.Value=true
		light[willchange[1]].green.Color = Color3.fromRGB(0, 0, 0)
		light[willchang
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值