我有水平移動兩個背景imags這一空白功能,但我想垂直移動:如何在cocos2d中垂直移動這些背景圖像而不是水平移動?
-(void) scroll:(ccTime)dt
{
//move 30*dt px vertically
if (background.position.x<background2.position.x){
background.position = ccp(background.position.x - 30*dt,background.contentSize.height/2);
background2.position = ccp(background.position.x+background.contentSize.width,background2.contentSize.height/2);
}else{
background2.position = ccp(background2.position.x- 30*dt,background2.contentSize.height/2);
background.position = ccp(background2.position.x+background2.contentSize.width ,background.contentSize.height/2);
}
//reset offscreen position
if (background.position.x <-background.contentSize.width/2)
{
background.position = ccp(background2.position.x+background2.contentSize.width,background.contentSize.width/2);
}else if (background2.position.x < -background2.contentSize.width/2)
{
background2.position = ccp(background.position.x+background.contentSize.width, background2.contentSize.width/2);
}
}
更新到我的代碼:
,因爲我不想改變X-合作我認爲讓我改變y,所以圖像可以垂直移動!
-(void) scroll:(ccTime)dt
{
//move 30*dt px vertically
if (background.position.y<background2.position.y){
background.position = ccp(background.position.y - 30*dt,background.contentSize.width/2);
background2.position = ccp(background.position.x+background.contentSize.height,background2.contentSize.width/2);
}else{
background2.position = ccp(background2.position.y- 30*dt,background2.contentSize.width/2);
background.position = ccp(background2.position.y+background2.contentSize.height ,background.contentSize.width/2);
}
//reset offscreen position
if (background.position.y <-background.contentSize.width/2)
{
background.position = ccp(background2.position.y+background2.contentSize.height,background.contentSize.height/2);
}else if (background2.position.x < -background2.contentSize.height/2)
{
background2.position = ccp(background.position.y+background.contentSize.height, background2.contentSize.height/2);
}
}
但是,改變了我剛剛得到第一個背景,並沒有滾動正在做的:((
後臺初始化代碼:
//adding background sprites
background = [CCSprite spriteWithFile:@"bg.JPG"];
background2 = [CCSprite spriteWithFile:@"bg.JPG"];
[background.texture setAliasTexParameters];
[background2.texture setAliasTexParameters];
//position background sprites
background.position = ccp(background.contentSize.width/2,background.contentSize.height/2);
background2.position = ccp(0,size.height);
//schedule to move background sprites
[self schedule:@selector(scroll:)];
//adding them to the main layer
[self addChild:background z:0];
[self addChild:background2 z:0];
IM真正的新的Cocos2D和我不t真的明白它是如何工作的,謝謝!!
感謝您的建議,我更新了我的代碼!但我得到一個靜止圖像! – MidnightCoder 2012-03-02 01:53:01
@MidnightCoder MDT的建議是戰鬥的一半,我相信MDT會意識到他們的建議中缺少的東西,如果他們真的在構建和測試它。 (不是我自己運行代碼)看看我如何更改示例中更復雜的一行的描述...希望這會更有幫助。 – 2012-03-02 02:02:37
感謝您的回答,我明白髮生了什麼,不是'background.postion = ccp(bgOldX,bgNewY);' – MidnightCoder 2012-03-02 02:18:11