跳躍游戲 BOX2D不能在碰撞檢測(cè)的類里面銷毀剛體的fixture嗎?
BOX2D不能在碰撞檢測(cè)的類里面銷毀剛體的fixture嗎?你好,我來(lái)回答你:雖然這是一個(gè)很老的問(wèn)題,但有些人仍然很困擾。是的,在碰撞過(guò)程中刪除剛體是不可能的。原因是在碰撞的初始階段,box2d將存儲(chǔ)
BOX2D不能在碰撞檢測(cè)的類里面銷毀剛體的fixture嗎?
你好,我來(lái)回答你:雖然這是一個(gè)很老的問(wèn)題,但有些人仍然很困擾。是的,在碰撞過(guò)程中刪除剛體是不可能的。原因是在碰撞的初始階段,box2d將存儲(chǔ)彼此接觸的AABB對(duì)象,并將它們放入數(shù)組或列表中。如果在這個(gè)時(shí)候刪除它們,是非常危險(xiǎn)的,而且在這個(gè)時(shí)候直接崩潰是不可避免的,最好使用切換模式。首先,將過(guò)濾器更改為0,否則無(wú)法碰撞,然后使用過(guò)濾器0統(tǒng)一處理所有對(duì)象并將其移除。如果我的回答對(duì)你沒(méi)有幫助,請(qǐng)繼續(xù)問(wèn)。
Box2D怎么用?
Box2d不是一個(gè)開(kāi)發(fā)環(huán)境,而是一個(gè)物理引擎。您需要在特定的開(kāi)發(fā)環(huán)境中引入這些類庫(kù),然后可以使用這些類庫(kù)來(lái)實(shí)現(xiàn)重力和摩擦力的效果。Box2d是跨平臺(tái)的。我知道box2d用于windows的VC、flash和cocos2d-x。我主要在MAC的cocos2d中使用box2d。
希望對(duì)您有所幫助。
cocos2d和box2d2者有什么區(qū)別?
Cocos2d和box2d是完全不同的東西。Cocos2d是一個(gè)開(kāi)源的框架,可以構(gòu)建2D環(huán)境。有ccscene,cclayer,ccsprite等概念。它可以用來(lái)建立一個(gè)良好的二維環(huán)境。Box2d是一個(gè)物理引擎,它模擬真實(shí)的物理環(huán)境。它有重力、加速度、摩擦力和剛體能量的概念。在這種環(huán)境下,只要定義了相應(yīng)的剛體和重力、摩擦力等外部環(huán)境,它們就可以自行處理碰撞。因?yàn)閎ox2d只是一個(gè)物理引擎,所以可以在很多地方使用,比如flash、IOS開(kāi)發(fā)、窗口開(kāi)發(fā)等等。Cocos2d是用Objective-C編寫的,現(xiàn)在只能在Apple開(kāi)發(fā)中使用。如果要在其他環(huán)境中使用cocos2d,則需要使用cocos2d-x。由于box2d只是一個(gè)物理引擎,因此不可能構(gòu)建場(chǎng)景。因此,在IOS開(kāi)發(fā)中,如果要?jiǎng)?chuàng)建box2d項(xiàng)目,還必須構(gòu)建場(chǎng)景。因此,該項(xiàng)目還向您添加了cocos2d庫(kù)。