laya 武器旋转砍怪判断

news/2025/10/8 17:05:22/文章来源:https://www.cnblogs.com/barrysgy/p/19129832

laya 武器旋转砍怪判断

typescript代码:

export interface IMonster extends Laya.Node {id: number;isDie:boolean;getPoint(): Laya.Point;getHitRect():Laya.Rectangle;
}export class Monster extends Laya.Sprite implements IMonster {private _isDie: boolean;private _id: number;constructor(id: number) {this._id = id;}public get isDie(): boolean {return this._isDie;}getPoint(): Laya.Point {return new Laya.Point(this.x, this.y);}getHitRect(): Laya.Rectangle {// 固定为原始矩形//let x = this.x - this.width * this.anchorX;//let y = this.y - this.height * this.anchorY;//return new Laya.Rectangle(x , y, this.width, this.height);// 动态的边界return this.getBounds();}
}export class Player {let monsterIds: number[] = [];// 检查圆圈是否击中怪物(武器绕着玩家旋转, 空心圆圈)
    checkCircleHitMonsters() {for (let monsterId in monsterList) {let monster: IMonster = monsterList[monsterId];let pos: Laya.Point = monster.getPoint();// 计算玩家中心点与怪物中心点之间的夹角let hitAngle = Math.atan2(this.y - pos.y, this.x - pos.x);let halfWidth = this.width * 0.5;let halfHeight = this.height * 0.5;// 玩家中心点与怪物中心点之间的连线与玩家的边框矩形相交点(武器转圈, 击中怪物的点)let hitPoint = new Laya.Point();hitPoint.x = this.x - halfWidth * Math.cos(hitAngle);hitPoint.y = this.y - halfHeight * Math.sin(hitAngle);if (!monster.isDie) {if (monster.getHitRect().contains(hitPoint.x, hitPoint.y)) {// if (this.hitTestPoint(hitPoint.x, hitPoint.y)) {monsterIds.push(monster.id); //所有的的被攻击到的id//播放受击动画什么的this._monsterCtrl.hitMonster(monster.id, this, hitPoint, hitAngle);}else {//停止播放受击动画this._monsterCtrl.outHitMonster(monster.id);}}}}// 如果是实心圆圈的符文, 只要使用符文hitTestPoint(怪物坐标)来检测// 如果是激光, 一根或多根时, 可以额外放对应数量的条状图对应相应的激活, 条隐藏, 不显示(如果激光旋转, 可以在onframe里面把条跟随旋转), 然后使用这些条来检测与怪物的碰撞// 子弹类就是每帧检测判断有没击中怪
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整教程:将音频数据累积到缓冲区,达到阈值时触发处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:Android studio初体验

实用指南:Android studio初体验2025-10-08 17:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

一款专门为 WPF 打造的开源 Office 风格用户界面控件库

前言 今天大姚给大家分享一款专门为 WPF 打造的开源(MIT license)、免费的 Office 风格用户界面控件库:Fluent.Ribbon。 项目介绍 Fluent.Ribbon 一个为 Windows Presentation Foundation(WPF)实现类 Office 开源…

一款专门为 WPF 打造的开源 Office 风格用户界面控件库

前言 今天大姚给大家分享一款专门为 WPF 打造的开源(MIT license)、免费的 Office 风格用户界面控件库:Fluent.Ribbon。 项目介绍 Fluent.Ribbon 一个为 Windows Presentation Foundation(WPF)实现类 Office 开源…

部门网站建设内容方案莆田市的网站建设公司

微信小程序页面传值为对象[Object Object]详解 1、先将传递的对象转化为JSON字符串拼接到url上2、在接受对象页面进行转译3、打印结果 1、先将传递的对象转化为JSON字符串拼接到url上 // info为对象 let stationInfo JSON.stringify(info) uni.navigateTo({url: /pages/statio…

网站建设后运维合同湖北省市政工程建设官方网站

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过cpolar 内网穿透软件实现ssh 远程连接kali! 1. 启动kali ssh 服务 默认新安装的kali系统会关闭ssh 连接服务,我们通…

给Ubuntu用户的SSH免密登入公钥文件和文件夹设置权限

给Ubuntu用户的SSH免密登入公钥文件和文件夹设置权限摘要 以root身份登入了Ubuntu,把其他用户的公钥加入其$home/.ssh/authorized_keys文件后,需要设置文件和文件夹的权限。 在配置 SSH 免密登录时,.ssh 目录和 aut…

dockercontainerd代理设置脚本

具体脚本 root@ubuntu-21:~# cat RQproxy.sh #!/bin/bash #用于docker或者containerd开启代理#####################修改成自己的代理的ip+port########################### httpipp=Environment="HTTP_PROXY=htt…

建设部网站官网证书查询广东深圳宝安区

科技观潮techsina与浪同行打造一个自己能全局掌控的硬件一个自己完全掌控的系统找人来开发App创造生态繁荣。让它有用、好用,让更多人用——这一系列动作,我们曾在iPhone的历史上都亲眼见证过。出品 / 新浪科技 ID:techsina作者 / 晓光视频 /…

php开发网站优势怎么做自己的销售网站

BOM(Bill of Material)物料清单 BOM(Bill of Material)物料清单,是计算机可以识别的产品结构数据文件,也是ERP的主导文件。BOM使系统识别产品结构,也是联系与沟通企业各项业务的纽带。ERP系统中…

阿里云能做网站么如何查网站是哪个公司做的

在MATLAB中,我们经常需要绘制图形并进行一些自定义的操作。在本示例中,我们将演示如何在MATLAB中绘制一个图形,并通过放大某个特定的区域来突出显示。 ## 原始图形 首先,我们绘制了一个包含正弦和余弦函数的图形。 % MATLAB 代…

自己有服务器和域名怎么做网站网站设计流程是

Michael Arrington曾发表一篇博文说,创业者必须加倍的努力工作,甚至不惜趴在办公桌上睡觉,这样才能成功。对此,我并不赞同其观点,我看了很多评论都是关于这样工作会适得其反,不但没有获得成功,相…

商丘网站建设软件开发平台软件

【二级分销小程序功能介绍】 二级分销小程序是一款专门为企业提供分销管理的移动应用程序。它的主要功能包括商品管理、订单管理、分销设置、分销商等级、分销佣金、分销海报等方面,下面我们逐一进行介绍: 1. 商品管理: 二级分销小程序可以…

2025国庆集训总结

DAY 1 T1 我去这不是简单题?预估\(100\)pts。 T2 我去这不是简单题?立马写,过样例了。交一发。 毕竟是数数题,再捋捋,诶好像不太对,我好像会多算一些方案,把贡献再划分一下,重新写了一遍,感觉这下没问题了。又…

tampermonkey油猴脚本, 动画疯评分显示增强脚本

动画疯评分增强脚本, 能够自动获取和显示动画评分.🎬 按需加载:在页面左下角提供一个控制面板,只有当您点击【获取评分】按钮时,脚本才会开始工作,避免了不必要的资源消耗。 ⭐ 自定义高亮:在获取评分前,会弹窗…

网站备案会检查空间360网站建设官网

配置mongodb副本集实现数据流实时获取 前言操作步骤1. docker拉取mongodb镜像2. 连接mongo1镜像的mongosh3. 在mongosh中初始化副本集 注意点 前言 由于想用nodejs实现实时获取Mongodb数据流,但是报错显示需要有副本集的mongodb才能实现实时获取信息流,…

课后 10.8

import java.util.Random; import java.util.Scanner; import java.util.HashSet; import java.util.Timer; import java.util.TimerTask; public class Math { private static HashSet questionSet = new HashSet<…

中国互联网协会官方网站达州 网站建设

1、什么是包 #官网解释 Packages are a way of structuring Python’s module namespace by using “dotted module names” 包是一种通过使用‘.模块名’来组织python模块名称空间的方式。 #具体的&#xff1a;包就是一个包含有__init__.py文件的文件夹&#xff0c;所以其实我…

实用指南:vue3+elementplus表格表头加图标及文字提示

实用指南:vue3+elementplus表格表头加图标及文字提示pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

菏泽做网站的宁乡市住房和城乡建设局网站

本文通过config server连接git仓库来实现配置中心&#xff0c;除了git还可以使用svn或者系统本地目录都行。引入依赖<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artif…