1, 矩形碰撞检测

class Main extends egret.DisplayObjectContainer {

    /**
* Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 super )
* constructor 是类的构造函数, 类在实例化的时候调用
* egret.Event.ADDED_TO_STAGE, 在将显示对象添加到舞台显示列表时调度
*/
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
} /**
* 显示对象.hitTestPoint(x, y) 用于判断矩形与某个点是否发生碰撞
* 以下为检测左右晃动的矩形是否与 点 300, 100 发生碰撞 (相交)
*/
private onAddToStage(event: egret.Event) {
var isHit:boolean = false;
var infoText:egret.TextField = new egret.TextField();
infoText.y = 200;
infoText.text = "isHit: " + isHit;
this.addChild(infoText); var shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill( 0xff0000 );
shp.graphics.drawRect( 0,0,100,100);
shp.graphics.endFill();
this.addChild(shp); var append = 10;
egret.startTick(function():boolean {
shp.x += append;
if (shp.x == 540) {
append = -10;
} else if (shp.x == 0) {
append = 10;
}
isHit = shp.hitTestPoint(300, 100);
infoText.text = "isHit: " + isHit;
return true;
}, this);
}
}

2, 像素碰撞检测

class Main extends egret.DisplayObjectContainer {

    /**
* Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 super )
* constructor 是类的构造函数, 类在实例化的时候调用
* egret.Event.ADDED_TO_STAGE, 在将显示对象添加到舞台显示列表时调度
*/
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
} /**
* 显示对象.hitTestPoint(x, y, 是否使用像素检测) 用于像素碰撞检测
* 与矩形碰撞检测相比, 像素碰撞检测只会检测显示对象显示部分与这个点是否碰撞
* 而矩形碰撞检测是检测显示对象的包围圈是否和这个点碰撞, 像素碰撞检测消耗性能大
* 如下绘制两个圆, 依次和他们的最小包围矩形的右下角的坐标做碰撞检测
* 最小包围矩形 => 水平的能将整个图案包括在内的矩形
* 可以发现, 矩形碰撞检测, 碰撞点只要在显示的对象的最小包围矩形内, 就返回 true
* 而像素碰撞检测, 碰撞点只有在园内的, 即显示区域内, 才返回 true
*/
private onAddToStage(event: egret.Event) {
var shp1:egret.Shape = new egret.Shape();
shp1.graphics.beginFill( 0xff0000 );
shp1.graphics.drawCircle( 50,50,50);
shp1.graphics.endFill();
this.addChild(shp1); var shp2:egret.Shape = new egret.Shape();
shp2.graphics.beginFill( 0xff0000 );
shp2.graphics.drawCircle( 50,450,50);
shp2.graphics.endFill();
this.addChild(shp2); var isHit0:boolean = shp1.hitTestPoint(100, 100);
var isHit1:boolean = shp2.hitTestPoint(100, 500, true); var infoText:egret.TextField = new egret.TextField();
infoText.y = 200;
infoText.text = "isHit0: " + isHit0 + ", isHit1: " + isHit1;
this.addChild(infoText);
}
}

白鹭引擎 - 碰撞检测 ( hitTestPoint )的更多相关文章

  1. Egret Engine(白鹭引擎)介绍及windows下安装

    Egret Engine简要介绍----- Egret Engine(白鹭引擎)[Egret Engine官网:http://www.egret-labs.org/]是一款使用TypeScript语言 ...

  2. 白鹭引擎 - 显示对象与 HelloWord ( 绘制了一个红蓝相间的 2 x 2 格子 )

    1: 白鹭引擎默认实在一个 640 * 1136 的画布上作画 2: 入口文件 Main.ts,  类 Main 是程序的入口 // 1, 在一个宽高为 640 * 1136 的画布上作画 // 2, ...

  3. Net Core SignalR 测试,可以用于unity、Layair、白鹭引擎、大数据分析平台等高可用消息实时通信器。

    SignalR介绍 SignalR介绍来源于微软文档,不过多解释.https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?v ...

  4. day132:2RenMJ:MJ需求文档&MJ游戏流程&Egret白鹭引擎安装&TypeScript简要介绍

    目录 1.麻将产品需求文档 2.麻将游戏流程 3.Egret白鹭引擎 4.TypeScript简要了解 5.TypeScript快速入门 1.麻将产品需求文档 1.麻将术语 1.名词术语 牌⼦: 序数 ...

  5. Egret(白鹭引擎)——Egret+fairyGui 实战项目入门

    前言 一行白鹭上青天 需求 最近,我们老板刷刷的为了省事,给美术减压(背景有点长,不说了). 美术出 fairygui,我需要在网页上看到实时操作,并且看到效果! 需求分析 这怕是要了我的狗命啊,但是 ...

  6. 白鹭引擎EUI做H5活动 入门篇

    前言:本学习文档的目的是为了实现h5,或者简单的h5游戏,比如说,我们要实现一个可以左右,或者上下移动的场景的h5,在场景移动的过程中,会有相应的动画或者操作,我们通过 js 也可以实现,但是为了流畅 ...

  7. 白鹭引擎 - 本地坐标和舞台坐标的转化 ( globalToLocal, localToGlobal )

    class Main extends egret.DisplayObjectContainer { /** * Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 ...

  8. 白鹭引擎EUI做H5活动 巩固篇

    项目目录 上面这张图片是项目的目录结构,咋们一点一点来讲解: .wing:包括 Egret 项目的任务配置文件和启动配置文件. wingProperties.json:Egret Wing 项目配置文 ...

  9. 白鹭引擎 - 资源文件的加载 ( RES, loadConfig, loadGroup )

    class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListe ...

随机推荐

  1. PHP localhost和127.0.0.1 的区别

  2. 简单明了区分IE,Firefox,chrome主流浏览器

    简单明了判断浏览器Firefox:typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().index ...

  3. java中构造方法和普通方法的区别

    1.普通方法: 定义:简单的说方法就是完成特定功能的代码块. 普通方法定义格式: 修饰符   返回值类型   方法名 (参数类型 参数名1,参数类型 参数名2,.........) { 函数体: re ...

  4. 经典面试题目——找到第n个丑数(参考《剑指offer(第二版)》面试题49)

    一.题目大意 给你一个数n,要求返回第n个丑数.其中,丑数的定义如下: 丑数是指只包含因子2.3和5的数.(数字1也是丑数,不过是个特例)引用<剑指offer>上的话来说,对于一个数M,如 ...

  5. Ubuntu 14.10 下Spark on yarn安装

    1 服务器分布 服务器 说明 192.168.1.100 NameNode 192.168.1.101 DataNode 192.168.1.102 DataNode 2 软件环境 2.1 安装JDK ...

  6. 《Kubernetes权威指南》笔记-Pod、容器与Node的关系

  7. [UE4]非常实用的SizeBox控件

    Desired:表示以期望的实际尺寸显示视图. SizeBox最好作为Child Widget的根节点.(如果SizeBox的父节点是Canvas Panel,SizeBox会变成可拉伸,ChildL ...

  8. [UE4]让子弹产生伤害

  9. sqlserver基本增删查语句

    use StudentManageDB go insert into Students (StudentName,Gender,Birthday,Age,StudentIdNo ,PhoneNumbe ...

  10. 优化:js 逻辑运算符优化

    运算符的代码优化,可以精简代码,提高代码可读性 下面主要讨论下逻辑运算符与 &&, 或||. 示例: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭 ...