日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(NO.00004)iOS实现打砖块游戏(八):游戏中小球与砖块的碰撞

發(fā)布時間:2023/12/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (NO.00004)iOS实现打砖块游戏(八):游戏中小球与砖块的碰撞 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大熊貓豬·侯佩原創(chuàng)或翻譯作品.歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處.
如果覺得寫的不好請告訴我,如果覺得不錯請多多支持點贊.謝謝! hopy ;)


現(xiàn)在回到GameScene.m中,我們所有的碰撞處理就放在該類中.我們首先要搞清楚什么會和什么碰撞.就目前來說,我們先來實現(xiàn)2中碰撞:小球和磚塊的碰撞,以及小球和反彈棒的碰撞.

小球和磚塊的碰撞:碰撞開始

我們知道一般物理引擎對于碰撞的處理不是一蹴而就的,它分為多個階段.在Chipmunk中將碰撞按照時間的前后分為開始和后續(xù)兩個部分;不是在所有的碰撞處理中都要關(guān)注這2個方法,一般只要關(guān)注開始碰撞的部分就可以了.但是在小球和磚塊碰撞的處理中,我們還要關(guān)注后續(xù)的部分,因為有些代碼不可以放在碰撞的開始部分.下面我們先來看看碰撞開始回調(diào)代碼是如何寫的:

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair ball:(CCNode *)ball brick:(CCNode *)brick{[_userInterface updateHitsLabel:[NSString stringWithFormat:@"Hits:%d",++_hits]];_score += ((Brick*)brick).value * _scoreRatio;if (_scoreRatio > 1) {[self updateMsgLabel:[NSString stringWithFormat:@"Score X %d",_scoreRatio]];}//小球沒連續(xù)碰撞一次磚塊,得分比率都會翻倍_scoreRatio *= 2;[_userInterface updateScoreLabel:[NSString stringWithFormat:@"得分:%d",_score]];[brick removeFromParent];@synchronized(self){[_level removeFromBricks:brick];}return YES; }

代碼不長,首先更新了游戲場景中的撞擊計數(shù),然后按不同磚塊的分值更新玩家的得分,然后將磚塊從場景中刪除.注意,最后調(diào)用了我們之前在Level類中實現(xiàn)的removeFromBricks方法,因為我們必須要更新關(guān)卡的數(shù)組.

小球和磚塊的碰撞:碰撞結(jié)束

我們希望在小球與磚塊碰撞時增加它的反彈力,所以我們要調(diào)整小球的力矩,而調(diào)整物理對象的力矩不能再CollisionBegin中完成,否則物理引擎會抱怨了 ;[ ,我們自然將其放到碰撞結(jié)束部分中:

-(BOOL)ccPhysicsCollisionPreSolve:(CCPhysicsCollisionPair *)pair ball:(CCNode *)ballbrick:(CCNode *)brick{CGPoint velocity = ball.physicsBody.velocity;//略微增加小球的力矩[ball.physicsBody applyImpulse:ccpMult(velocity, 1.00005)];return YES; }

注意我增加了一個特別微小的力矩值,因為力矩會在多次碰撞后快速累積,很快就會變得非常大,畢竟你也不想看到小球經(jīng)過幾次反彈后超過光速吧 ;)

總結(jié)

以上是生活随笔為你收集整理的(NO.00004)iOS实现打砖块游戏(八):游戏中小球与砖块的碰撞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。