基于图像创建多边形Nape刚体

提到基于图像创建多边形,你可能会想到PhysicsEditor,不过今天我们要实现的是,用MarchingSquares在运行时,基于图像创建多边形刚体。

上一节,我已经讲过了MatchingSquares创建多边形刚体的用法,不熟悉的同学,请点击这里自行查看。今天的教程,原理和上一节是一样的,不同的是iso函数里的算法。好了,我们还是先看看效果吧!

在下面的示例中,双击舞台弹出浏览对话框,旋转一个png文件,我之所以类型限制为png,是因为png支持透明背景,可以实现不规则边界。选择好之后,会自动在左上角添加该图像,同时生成相同形状的多边形刚体。

[swfobject]1061[/swfobject]

代码部分很简单,如下:

	public function iso(x:Number,y:Number):Number{
		var isOK:Number;
		if(graphic.bitmapData.getPixel32(x, y)>0){
			isOK = -1;
		}else{
			isOK = 1;
		}
		return isOK;
	}

graphic保存了我们旋转的图像引用,通过它的BitmapData属性的getPixel32方法,或者(x,y)坐标处的像素,如果该像素值大于0,即飞透明像素,则表示isOK为-1,否则为1。然后返回即可。

好了,本节内容讲完了,就这么简单,点击下载源文件

联系作者

公众号:拉小登 | 微博:拉登Dony | B站:拉小登Excel

2 Replies to “基于图像创建多边形Nape刚体”

  1. 刚刚在苹果上安装了haxe 并且编译hx 运行了一下 果然很快。。。。。难道说 官方的例子很快。。。。就因为是hx语言的。。。。?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注