問題 求cocos2d上的bezier曲線的細節

2021-09-06 05:12:03 字數 2206 閱讀 6661

需求:乙個***遊戲,要求飛機在螢幕外由左至右或者由右至左飛過,但其飛行的路線應該是多樣的、隨機的,我採用了bezier曲線,方法是在左右螢幕的x 軸上隨機的插入n個點,然後依次用這些點作為乙個個bezier曲線的終點,生成n+1條bezier曲線(用ccbezierto動作實現),然後把這些動作放在乙個動作序列中,再執行這個動作序列。但是出現明顯的問題是:各個動作動作完後(一段bezier曲線)有明顯的停頓現象,不只是因為曲線不圓滑,就算是圓滑,各個動作之間估計也有停頓現象。現在想就些請教各位兩個問題:

1、cocos2d中的,有沒有辦法一次性地設定n次bezier曲線,好像只能設定3個點,這樣的話,曲線變化不多,路線不生動;

2、如果採取變種的辦法,人為的分成n個曲線動作,放在動作序列中,再執行動作序列,怎樣才能讓各個動作之間沒有停頓的現象。

//

startpos----varstartandend-----.-----.----.--.------.----varstartandend----destpos

-(ccsequence*)makebeizposes:(cgpoint)startpos destpos:(cgpoint)destpos routecount:(int)routecount varstartandend:(int

)varstartandend;

float beizposesy_int[fly_route_max] = ;

//nsarray* beizposesx,*beizposesy;

nsarray* beizposesx =[[nsarray alloc]init];

nsarray* beizposesy =[[nsarray alloc]init];

int plugpoint = routecount - 1

;

float

startp,endp;

startp = startpos.x +varstartandend;

endp = destpos.x -varstartandend;

if(plugpoint >= 1

)

float changetemp = 0;//

set beizposesx_int

beizposesx_int[0] =startpos.x;

beizposesx_int[routecount] =destpos.x;

beizposesy_int[

0] =startpos.y;

beizposesy_int[routecount] =destpos.y;

for (int i = 0; i < [beizposesx count]; i ++)

//set beizposesy_int

int couty =[beizposesy count];

nslog(

@"couty is:%d

",couty);

for (int i = 0; i < [beizposesy count]; i ++)

if(startpos.x }

}else}}

cgpoint beizposes[routecount + 1

];

for(int index = 0;index <= routecount;index++)

beizposes[index] =cgpointmake(beizposesx_int[index], beizposesy_int[index]);

float

usetime;

ccsequence*seqfly;

nsmutablearray* actionarray =[nsmutablearray arraywithcapacity:routecount];

ccbezierconfig bezier;

ccbezierto *flymove;

for(int i = 0;i < routecount;i ++)

[actionarray addobject:actioncallfunc];

seqfly =[ccsequence actionswitharray:actionarray];

//[beizposesx release];

//[beizposesy release];

return

seqfly;

}

源**如下:

cocos2d使用問題

最近在使用3.6版本的richtext遇到getcontentsize的時候會是 var richtext new ccui.richtext richtext.ignorecontentadaptwithsize false richtext.setcontentsize cc.size 500,...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

cocos2d筆記 cocos2d的單例模式

cocos2d充分使用了單例設計模式,這裡有必要提及它是因為它是經常是討論熱點。大體上說,乙個singleton是乙個類,它在應用使用期中僅僅例項化一次。為了確保如此,就要使用乙個既建立又訪問此物件例項的靜態方法。因此,你不使用alloc init或者靜態自動釋放初始化器 static autore...