`
wgcode
  • 浏览: 599896 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

像素碰撞检测

 
阅读更多
var redRect:Rectangle = redClip.getBounds(this);
var redClipBmpData = new BitmapData(redRect.width, redRect.height, true, 0);
redClipBmpData.draw(redClip);

var blueRect:Rectangle = blueClip.getBounds(this);
var blueClipBmpData = new BitmapData(blueRect.width, blueRect.height, true, 0);
blueClipBmpData.draw(blueClip);

addEventListener(Event.ENTER_FRAME, enterFrame);

function enterFrame(e:Event):void
{
	blueClip.x = mouseX;
	blueClip.y = mouseY;

	if(redClipBmpData.hitTest(new Point(redClip.x, redClip.y),
								255,
								blueClipBmpData,
								new Point(blueClip.x, blueClip.y),
								255

						  ))
	{
		trace("hit");
		redClip.filters = [new GlowFilter()];
	}
	else
	{
		redClip.filters = [];
	}
}

 

渲染版

addEventListener(Event.ENTER_FRAME, enterFrame);

function enterFrame(e:Event):void
{
	blueClip.x = mouseX;
	blueClip.y = mouseY;	

	redClip.rotation++;

	var blueRect:Rectangle = blueClip.getBounds(this);
	var blueOffset:Matrix = blueClip.transform.matrix;
	blueOffset.tx = blueClip.x - blueRect.x;
	blueOffset.ty = blueClip.y - blueRect.y;	

	var blueClipBmpData = new BitmapData(blueRect.width, blueRect.height, true, 0);
	blueClipBmpData.draw(blueClip, blueOffset);		

	var redRect:Rectangle = redClip.getBounds(this);
	var redClipBmpData = new BitmapData(redRect.width, redRect.height, true, 0);

	var redOffset:Matrix = redClip.transform.matrix;
	redOffset.tx = redClip.x - redRect.x;
	redOffset.ty = redClip.y - redRect.y;	

	redClipBmpData.draw(redClip, redOffset);	

	var rLoc:Point = new Point(redRect.x, redRect.y);
	var bLoc:Point = new Point(blueRect.x, blueRect.y);	

	if(redClipBmpData.hitTest(rLoc,
									255,
									blueClipBmpData,
									bLoc,
									255
						  		))
	{
		trace("hit");
		redClip.filters = [new GlowFilter()];
	}
	else
	{
		redClip.filters = [];
	}

	blueClipBmpData.dispose();
	redClipBmpData.dispose();
}

 

分享到:
评论

相关推荐

    像素碰撞检测源码

    像素碰撞检测是游戏开发中的一个重要概念,特别是在2D游戏领域,用于判断两个物体是否相互接触或重叠。Cocos2d-x是一个流行的开源2D游戏引擎,它使用C++作为主要编程语言,提供了丰富的功能来支持游戏开发。在这个...

    像素级碰撞检测

    一种矩形返回矩形大小 一种矩形 返回是否 一种像素级碰撞

    碰撞检测矩形+像素.rar

    以下是一个基本的像素碰撞检测示例: ```csharp private unsafe bool PixelCollision(Bitmap img1, Bitmap img2, Point pos1, Point pos2) { Rectangle rect1 = new Rectangle(pos1, img1.Size); Rectangle rect2...

    矩形像素碰撞

    在游戏开发和图形编程中,矩形像素碰撞检测是一个重要的技术环节,特别是在2D游戏中,它用于检测游戏对象之间的交互,比如角色是否碰撞到障碍物、敌人或道具。本主题将深入探讨如何利用向量来实现高效且精确的矩形...

    flash 像素碰撞

    在Flash开发中,像素碰撞检测是一种常见的技术,用于检测两个对象是否相交。它通过比较对象在屏幕上的像素颜色来判断是否发生碰撞,而非依赖于形状或边界框。这种技术在游戏开发、动画制作以及交互设计中都有广泛的...

    像素碰撞_C#_C++_

    2. **精确像素碰撞检测**:遍历两个图形的所有像素,如果存在颜色相同的像素,则认为发生碰撞。 3. **包围盒检测**:先检查物体的包围盒是否相交,如果相交,再进行更精确的检测,如像素碰撞。 在实际应用中,为了...

    Android游戏开发之碰撞检测(矩形碰撞、圆形碰撞、像素碰撞)

    像素碰撞检测是最精确但也是最耗时的方法,它需要遍历两个图形的每个像素来确定是否有重叠。这种方法适用于复杂形状的游戏对象,如带有透明部分的图像。由于需要检查的像素数量庞大,通常只在必要时使用,例如对于...

    JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解

    使用像素碰撞检测法算是最精确的算法了,当然,带来的代价也是比较明显的,那就是效率上的低下。除非是在极为特殊的情况下,要求使用非常精确的碰撞,否则,一般情况下在游戏中是不建议使用这种算法,特别是在运行...

    visual c++ vc开发编写2d游戏之 游戏场景移动及像素碰撞 源码 用的gdi没用directx

    四、像素碰撞检测 像素级碰撞检测是一种精确的碰撞检测方法,它通过比较两个对象在像素级别上的重叠情况来判断是否发生碰撞。在GDI中,可以使用位图操作函数,例如`BitBlt`,配合颜色查找表(Color Table)或者Alpha...

    AS3.0高级碰撞检测

    位图的碰撞检测是Flash开发中的一个重要技术,尤其在游戏制作和交互式应用程序中不可或缺。在AS3.0中,提供了多种碰撞检测方法,包括基本的`hitTestObject`和`hitTestPoint`,以及更高级的`BitmapData.hitTest`方法...

    XNA 像素级碰撞侦测的实例 2.0 3.0版本

    在这个"XNA像素级碰撞侦测的实例2.0 3.0版本"中,我们将深入探讨如何在XNA环境中实现精确的像素级碰撞检测。 首先,我们要理解碰撞检测的基本概念。碰撞检测是指在游戏世界中,检测两个或多个物体是否发生接触的...

    AS3.0像素级别精确检测碰撞

    在ActionScript 3.0(AS3.0)中,像素级别的精确碰撞检测是一种高级技术,用于游戏开发或任何需要精确交互的项目。通常,AS3.0中的基本碰撞检测基于对象的边界框,但这种方法可能无法处理非矩形形状或具有透明度的...

    程序中几何图形间的距离计算(碰撞检测)

    6. **像素碰撞**(J2ME 中的): - 在J2ME这样的移动平台开发中,可能需要像素级别的碰撞检测,这通常涉及到逐像素比较两个图像或颜色区域。 7. **直线与矩形碰撞**: - 检测一条直线是否与矩形的边界有任何交点...

    Tiled Map中使用碰撞检测

    2. **精确碰撞检测**:如果需要更精确的碰撞检测,可以使用像素级碰撞检测。这通常涉及将对象的图像转换为Alpha遮罩,然后逐像素比较两个遮罩的重叠部分。虽然这种方法更准确,但计算量较大,可能会降低游戏性能。 ...

    pengzhuang.rar_OpenGL碰撞检测_opengl 碰撞检测_opengl 碰撞检测_碰撞_碰撞检测

    固定功能管线处理大部分图形渲染,而可编程管线允许程序员自定义顶点和像素处理,这在碰撞检测中可能更有优势,因为可以灵活地进行几何操作和计算。 "pengzhuang"和"A11_碰撞检测"可能是源代码文件,其中包含了具体...

    FLASH高级碰撞检测

    它不仅支持透明度,还能够高效地检测两个位图数据对象之间的像素重叠,为复杂场景下的碰撞检测提供了有力的支持。在未来的游戏开发和交互式应用程序设计中,BitmapData.hitTest将发挥更加重要的作用。

    碰撞检测mouse opengl

    在计算机图形学领域,"碰撞检测mouse OpenGL" 是一个关键的概念,主要涉及到用户交互与3D场景中的物体交互。在本场景中,我们关注的是如何使用OpenGL库来实现鼠标与屏幕内3D对象的碰撞检测,并且是用C++语言进行编程...

    碰撞检测(毕业论文)

    - **像素着色器**:在像素着色阶段进行更精细的碰撞检测。 #### 碰撞检测算法的优化 为了提高游戏的实时性和流畅性,对碰撞检测算法进行优化至关重要。以下是一些常用的优化策略: - **层次包围盒**:使用多层...

Global site tag (gtag.js) - Google Analytics