注:點選滑鼠新增body,r鍵清空body
原來要註冊才能看到swf的,附有截圖
**
packageprivate
function init(e:event
=null
):void
private
function onkeydownhandler(e:keyboardevent):
void}}
}private
function onclickhandler(e:mouseevent):
void
private
function initb2d():
void/**
* 新增body
* @param _type
*/private
function createpolygon(_type:
int=-1
):void
else
var skin:sprite
=new
sprite();
var tmp_asset:bitmap;
var radius:
int;
var i:
int;
var tmp_radius:
int=
math.random() *40
+30;var start_pos:point
=new
point(math.random()
*100-50
+275
, math.random()
*100-50
-100
);switch
(type)}/*
** 建立正多邊形body
* @param xpos
* @param ypos
* @param vertexcount
* @param radius
*/private
function createpolygontypeof(xpos:number, ypos:number, vertexcount:
int, radius:number):
void
boxdef.density =2
;boxdef.friction
=0.3
;boxdef.restitution
=0.3
;var bodydef:b2bodydef
=new
b2bodydef();
bodydef.angle
=math.random()
*360
;bodydef.position.set(xpos
/ratio, ypos
/ratio);
var skin:sprite
=new
sprite();
var tmp_asset:bitmap;
switch
(vertexcount)
bodydef.userdata
=skin;
addchild(bodydef.userdata);
var body:b2body
=world.createbody(bodydef);
body.createshape(boxdef);
body.setmassfromshapes();}/*
** 建立地板
*/private
function creategrounds():
void/**
* 顯示debug圖
*/private
function showdebug():
void/**
* 建立物理空間
*/private
function createworld():
void/**
* 重新整理物理空間
* @param e
*/private
function onloophandler(e:event):
void}}
/*** 獲取貼圖
box2d 新建復合多邊形物體
方法 vector parsepolyarrstr nsstring polyarrstr vector target new vector nsarray childshapes polyarrstr componentsseparatedbystring z for uint i 0 i chi...
Box2D 三 建立圓,長方形,凸多邊形
下面說下凸多邊形的建立 box2d允許你建立任何種類的多邊形形狀,只要多邊形是凸多邊形,這將意味著它擁 有的所有內角要小於180度,所有的頂點要遠離中心,而且你要按順時針方向排列它們。建立過程 1.首先,建立乙個向量 vector 來儲存所有的頂點 var vertices vector.new v...
基於2D多邊形的碰撞檢測和響應 一
簡介 本文是闡述如何在2d動作遊戲中進行精確而高效的碰撞檢測。這裡的碰撞是基於多邊形而不是基於精靈的。這兩者之間在設計上會有不同。基於精靈的碰撞檢測是通過精靈之間的重疊的畫素來完成的。而多邊形使用向量數學來精確計算交點,時間和碰撞方向。雖然多邊形僅僅是精靈的乙個近似,但是它比精靈系統要高階。特性本文...