91引擎爱好者论坛

 找回密码
 立即注册
热搜: 91引擎
查看: 1763|回复: 3

【TS版】无人值守“押镖”思路分享[老论坛]

[复制链接]

该用户从未签到

0

主题

0

帖子

185

积分

注册会员

Rank: 2

积分
185
发表于 2022-1-10 23:26:13 | 显示全部楼层 |阅读模式
本帖最后由 独家记忆 于 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()//死亡并清除尸体 
                }
        }
    }
  
}



回复

使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 14:41
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    176

    帖子

    407

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    407
    发表于 2023-12-19 12:04:19 | 显示全部楼层
    感谢分享!!!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-24 14:41
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    176

    帖子

    407

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    407
    发表于 2023-12-19 12:05:41 | 显示全部楼层
    感谢分享!!!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|妖孽游戏素材网|91引擎爱好者

    GMT+8, 2024-3-28 22:35 , Processed in 0.133558 second(s), 28 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表