彈幕模塊
源碼簡(jiǎn)介:滑動(dòng)航道選擇
方案:
1、
通過彈幕碰撞檢測(cè),決定是否使用此航道,即航道每次都是從上往下做判斷。
碰撞檢測(cè)主要難點(diǎn)在于檢測(cè)橫向滾動(dòng)彈幕之間的碰撞,彈幕存活時(shí)間由其顯示時(shí)間和存活長短決定,因此,彈幕之間是否碰撞只需檢測(cè)開始和消失是否碰撞即可。
2、
當(dāng)***個(gè)找不到航道時(shí)候,檢查所有航道最小距離,這個(gè)距離必須在指定的***彈幕的長度之內(nèi),如果找到,將其放置在對(duì)于彈幕后面。
2.1、前彈幕最右邊還沒出現(xiàn)在屏幕時(shí),新彈幕放置到其后面,space為倆之間間隔
2.2、前彈幕最右邊已出現(xiàn)在屏幕時(shí),新彈幕仍然放置邊界等待滾動(dòng)
浮現(xiàn)航道選擇(分為兩排航道)
方案:
1、
選擇***排,按沒有彈幕為準(zhǔn),沒有就顯示
2、
***排都占滿,使用第二排,第二排是在***排的基礎(chǔ)坐標(biāo)y向下半個(gè)航道高度,
這樣可以有個(gè)視覺差,***排顯示消失時(shí),可以看到第二排,從而爭(zhēng)取更大的顯示航道(2n-1)
測(cè)試環(huán)境:Xcode 6.2,iOS 6.0以上
源碼效果圖: