在游戏设计中,对鼠标与舞台的碰撞检测也是经常用到的,今天的碰撞检测主要用到hitTestPoint()函数。
一、碰撞的类型
(1)像素碰撞
什么是像素碰撞?通俗的讲就是在一张图中,它的不透明部分被点击时是可以被检测到的,
反之当透明部分被点击时,不能被检测到。
(2)矩形碰撞
什么是矩形碰撞?与像素碰撞相比矩形碰撞就没有那么的精确。就是在一张图中,当发生点击事件时,不区别图片的透明与非透明部分,只要图片被点击就会被检测到。
二、hitTestPoint(?,?,?)
①首先需要明白hitTestPoint(x?,y?,?)中的前两个参数代表鼠标点击的那一个点的x坐标和y坐标,检测该点是否与索要检测的物体重合,如果重合,则发生碰撞,否则就没有发生碰撞;
②第三个参数是对碰撞类型的选择,如果是true,则碰撞类型为像素碰撞;false为矩形碰撞。
三、关键代码实现区别
(1)像素碰撞
this.Road.hitTestPoint(e.localX,e.localY,true)
(2)矩形碰撞
this.Road.hitTestPoint(e.localX,e.localY,false)
四、综合代码
(代码中用到的图片在文档最后,可自取使用,熟悉后更换图片试试)
class Main extends egret.DisplayObjectContainer {
public constructor