Egret社区
1072690884  登堂入室 | 2015-12-4 18:18:49
taotao5453 发表于 2015-12-4 18:09
Collision.block是个静态方法么?  这样下面的判断 结果只是数组的最后一个元素的结果 ...

碰撞检测现在没问题 就是不知道怎样实时更改碰撞的坐标
taotao5453  禁止访问 | 2015-12-4 18:25:07
提示: 作者被禁止或删除 内容自动屏蔽
1072690884  登堂入室 | 2015-12-4 18:27:36
taotao5453 发表于 2015-12-4 18:25
要看你的Collision内部是如何实现的,这个是自己写的类吗

是的
class Collision{
     public static collisionSide:String=" ";
    public static block(r1:egret.Sprite,r2:egret.Sprite):void
    {
        var vx:number=(r1.x+r1.width/2)-(r2.x+r2.width/2);
        var vy:number=(r1.y+r1.height/2)-(r2.y+r2.height/2);
        if(Math.abs(vx)<r1.width/2+r2.width/2){
            if(Math.abs(vy)<r1.height/2 + r2.height/2){
                var o_X:number = r1.width/2+r2.width/2-Math.abs(vx);
                var o_Y:number = r1.height/2+r2.height/2-Math.abs(vy);


        if(o_X >= o_Y){
            if(vy>0){
                this.collisionSide = "Top";
                r1.y = r1.y + o_Y;
            }else{
                this.collisionSide = "Bottom";
                r1.y = r1.y - o_Y;
            }
        }
           else{
            if(vx > 0){
                this.collisionSide = "Left";
                r1.x = r1.x + o_X;
            }else{
                this.collisionSide = "Right";
                r1.x = r1.x - o_X;
              }
           }
        }else {
            this.collisionSide = "No collision";
        }
    }
        else {
            this.collisionSide = "No collision";
        }
  }
}
taotao5453  禁止访问 | 2015-12-4 18:36:34
提示: 作者被禁止或删除 内容自动屏蔽
1072690884  登堂入室 | 2015-12-4 18:37:06
taotao5453 发表于 2015-12-4 18:36
Collision的变量和函数都要使用的话,就不能把Collision里的变量和函数写成静态了,吧static去掉吧,然后 ...

哦哦 我试一下
1072690884  登堂入室 | 2015-12-4 21:37:59
taotao5453 发表于 2015-12-4 18:36
Collision的变量和函数都要使用的话,就不能把Collision里的变量和函数写成静态了,吧static去掉吧,然后 ...

太感谢了我成功了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部