2013-12-27 NPC终于整合进场景了

 

还是蛮有成就感的,感觉我就像一个上帝,先创建世界,再创建人物,再创建NPC,再让NPC具有灵魂.
记得我以前做过一个梦,梦见我的引擎完事了,看见DEMO场景中有一个NPC带着一群NPC在巡逻,这个梦想马上就要实现了,感觉真不错.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先在 LayaMetaX-PGC 项目中创建一个 NPC 类,表示 NPC 角色。 ```typescript class NPC extends Laya.Sprite { // NPC 的属性和方法 } ``` 2. 在 NPC 类中声明一个 target 属性,表示 NPC 跟随的目标。 ```typescript class NPC extends Laya.Sprite { private target: Laya.Sprite; // ... } ``` 3. 在 NPC 类的构造函数中,接收一个 target 参数,并将它赋值给 target 属性。 ```typescript class NPC extends Laya.Sprite { constructor(target: Laya.Sprite) { super(); this.target = target; // ... } // ... } ``` 4. 在 NPC 类中实现一个 follow 方法,让 NPC 跟随 target 移动。 ```typescript class NPC extends Laya.Sprite { private speed: number; // ... public follow(): void { // 计算 NPC 和 target 的距离 const dx = this.target.x - this.x; const dy = this.target.y - this.y; const distance = Math.sqrt(dx * dx + dy * dy); // 计算 NPC 的移动速度 const speedX = (dx / distance) * this.speed; const speedY = (dy / distance) * this.speed; // 让 NPC 移动 this.x += speedX; this.y += speedY; } } ``` 5. 在 LayaMetaX-PGC 项目中的主场景中创建一个 NPC 对象,并将主角对象作为参数传递给它。 ```typescript class MainScene extends Laya.Scene { private player: Player; private npc: NPC; constructor() { super(); // ... this.player = new Player(); this.npc = new NPC(this.player); // ... } // ... } ``` 6. 在主场景的 update 方法中,每帧调用 NPC 的 follow 方法,让 NPC 跟随主角移动。 ```typescript class MainScene extends Laya.Scene { // ... public update(): void { this.player.move(); this.npc.follow(); } } ``` 至此,我们就成功地用 TypeScript 实现了 NPC 跟随主角移动的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值