2011-02-17 39 views
0

嘿家伙, 我有一个即时通讯工作的raidan风格的2D飞行/战斗机游戏。从标准的NSObject框架移动到Cocos2D,我遇到了我的背景图像/精灵的问题。加载和卸载背景图像为游戏移动

在cocos2d之前,我的背景非常大。 320x9999(或其他)。但它加载并创造了一个非常大的幻想。 Cocos2d对图像大小有限制,所以我不得不将图像分成33个不同的背景图像,每个图像的大小为320x480。

认为存储器是在iOS平台上一个大问题,我决定,我将创建2个背景CCSprites: CCSprite * background1,* background2; background2 ontop of background1。

使用这两种背景,作为射流向上移动在屏幕上,每一个背景将以相等的比例成反比向下移动屏幕,如在第一background1完全关闭屏幕垂直移动,它被释放回存储器和新的精灵将加载到background1中,然后将background1垂直放置在background2之上。

当background2离开屏幕时,它被释放并且一个新图像被加载到background2中,并且它被放置在background1的顶部。

创建恒定和一致背景的幻觉。

问:这看起来像是一种有效的方法吗? Q.我怎么能够通过编程实现这样的事情?我拥有运动物理学和一切准备就绪。我只是有点不确定如何与科科斯做到这一点。

再一次,在此先感谢!

回答

0

A1)是的,它是这样做的一个有效途径,它几乎很容易的事HT ECODE去的财产以后这样的(我可能有一些programatical错误,认为这几乎成了psudo代码):

if(background[1].position.y < 0) 
{ 
    [layer removeChild:background[1] cleanup:YES]; 
    background[1] = background [2]; 
    background[2] = [CCSprite SpriteWithFile:"file id"] 
    background[2].position = ccp(0,480); 
    [background[2] runAction:[CCMoveBy actionWithDuration:1 position:ccp(0,1)]] 
} 

A2)如果你只需要一些指导,这样做,我给你一个实现。您需要什么,如果你的意思是你不知道如何使用的cocos2d-iphone尝试这些手册,以实现plysics东西:

http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls

http://www.raywenderlich.com/475/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-12

http://www.raywenderlich.com/505/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-22

0

我不是很确定你说的是什么,我想你说的是交换背景,一个背景变得活跃,另一个背景变成了下一个部分。这不是一种不常见的技术,在许多方面使用与此类似的想法。 还搜索剪贴图,超级纹理,地图集纹理。