「java矩形碰撞」java的碰撞机制

博主:adminadmin 2022-11-25 05:20:08 79

本篇文章给大家谈谈java矩形碰撞,以及java的碰撞机制对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java判断飞行物之间碰撞有几种方法可以

这属于碰撞检测问题。

1、简单的2D的物体:

物体形状一般可以设定为矩形区域,这类规则图形。它的碰撞检测可以通过java API中的

 Rectangle类来实现碰撞的检测。

2、复杂点的:像素级别的碰撞检测

像素级别的碰撞检测算得上是最精确的碰撞检测方法了。

 首先遍历算出一张位图所有的像素点坐标,然后与另外一张位图上的所有点坐标进行对比,

 一旦有一个像素点的坐标相同,就立刻取出这两个坐标相同的像素点,通过位运算取出这两个

 像素点的最高位(透明度)进行对比,如果两个像素点都是非透明像素则判定这两张位图发生

 碰撞。

JAVA SE 中如何检测物体碰撞?

awt里有一个类 Rectangle, 它有一个方法public boolean intersects(Rectangle r) 可检测物体碰撞.确定此 Rectangle 是否与指定 Rectangle 相交。如果两个矩形的交集为非空,则它们是相交的。

也就是说小车代表的矩形和护栏代表的矩形相交

java矩形为什么碰撞检测出不来

可能是当前Tank与其他任意Tank有碰撞就返回

,可以写成

public boolean collidesWithTanks (ListTank tanks) {

tanks.remove(this);//这里删除当前对象,下面就不用老判断了

for (int i = 0; i tanks.size(); i++) {

Tank tank =tanks.get(i);

//if (this != tank ) {

if(this.collidesWithTank(tank))

return true; //如果和任意一个有碰撞就返回true

}

return false;

}

Java像素碰撞检测原理?

Java像素碰撞检测原理大体分为基于屏幕像素颜色检测,当移动的目标坐标像素的颜色与目标颜色相同时为发生碰撞。坐标检测,就是维持各感兴趣物体的坐标数据,判断二者坐标相同时为发生碰撞。可以使用ActionScript3.0自带bitmapdata功能对像素级碰撞检测:

package

{

    import flash.display.Bitmap;

    import flash.display.BitmapData;

    import flash.display.Shape;

    import flash.display.Sprite;

    import flash.display.StageAlign;

    import flash.display.StageScaleMode;

    import flash.events.Event;

    import flash.events.MouseEvent;

    import flash.filters.GlowFilter;

    import flash.geom.Matrix;

    import flash.geom.Point;

    

    [SWF(width="1000",height="600")]

    public class Bitbdhitest extends Sprite

    {

        private var bd1:Bitmap;

        private var bd2:Bitmap;

        

        public function Bitbdhitest()

        {

            super();

            stage.scaleMode=StageScaleMode.NO_SCALE;

            stage.align=StageAlign.TOP_LEFT;

            init();

        }

        

        private function init():void

        {

            var bdp1:BitmapData=new BitmapData(100,100,true,0);

            bdp1.draw(getstar(50),new Matrix(1,0,0,1,50,50));

            

            bd1=new Bitmap(bdp1);

            bd1.x=200;

            bd1.y=200;

            this.addChild(bd1);

        

            var bdp2:BitmapData=new BitmapData(100,100,true,0);

            bdp2.draw(getstar(50),new Matrix(1,0,0,1,50,50));

    

            bd2=new Bitmap(bdp2);

            this.addChild(bd2);

            

            this.addEventListener(Event.ENTER_FRAME,onMouseMove)

        }

        

        private function onMouseMove(e:Event):void

        {

            bd2.x=mouseX-50;

            bd2.y=mouseY-50;

             

            if(bd1.bitmapData.hitTest(new Point(bd1.x,bd1.y),1,bd2.bitmapData,new Point(bd2.x,bd2.y),255))

            {

                bd1.filters=[new GlowFilter];

                bd2.filters=[new GlowFilter];

            }

            else

            {

                bd1.filters=[];

                bd2.filters=[];

            }

            

        }       

        private function getstar(_r:Number):Sprite

        {

            var _star:Sprite=new Sprite;

            _star.graphics.lineStyle(0);

            _star.graphics.moveTo(_r,0);

            

            for(var i:int=1;i11;i++)

            {

                var r2:Number=_r;

                

                if(i%20)

                {

                    r2=_r/2;

                }

                

                var angle:Number=Math.PI*2/10*i;        

                _star.graphics.lineTo(Math.cos(angle)*r2,Math.sin(angle)*r2);

            }                        

            return _star;

        }

        

    }

}

java 中两个不规则图片怎样判断发生碰撞

给个思路:发生碰撞:触发事件--切换到受伤的状态(图片变换或图片类容改变)事件可以由图片的坐标控制

关于java矩形碰撞和java的碰撞机制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。