本帖最后由 独家记忆 于 2022-7-1 11:04 编辑
1、创建一个数组型全局变量,用来存放所有镖车的对象2、创建一个全局时钟,每秒遍历一次 镖车对象数组3、判断两点距离,如果镖车距离与目的距离小于2,则判断运镖完毕 扩展:可以在全局时钟里增加判断镖车是否掉血等,提醒玩家去护镖
在局脚本[公共单元] 里创建一个存放所有镖车的全局变量
[TypeScript] 纯文本查看 复制代码 export let 全局_镖车列表: TActor[] = [] [/pre][pre]计算两点距离的函数公式
export function 计算距离(x1:number,y1:number,x2:number,y2:number): number {
return Math.sqrt(Math.pow((x1 - x2),2) + Math.pow((y1 - y2),2))
}
//全局时钟调用的 镖车处理函数
import { 计算距离 } from "../全局脚本[公共单元]/函数"
import { 全局_镖车列表 } from "../全局脚本[公共单元]/变量"
export function 开始(): void {
//363,345 目的坐标
for (let i = 0; i < 全局_镖车列表.length; i++) {
let 镖车 = 全局_镖车列表[i]
if (镖车.Ghost == false) {
var 玩家 = GameLib.FindPlayer(镖车.GetSVar(1))
let 距离 = 计算距离(镖车.MapX,镖车.MapY,363,345)
玩家.SendMessage("你的[" + 镖车.Name + "],坐标:" + 镖车.MapX+"," + 镖车.MapY + " 距离:" + 距离)
if (距离 <= 2) {
玩家.SendMessage("你的[" + 镖车.Name + "]已经到达终点!")
镖车.MakeGhost()//死亡并清除尸体
}
}
}
}
|