Articles of cocos2d iphone

在cocos2d v3中预加载

我正在尝试创建一个预加载,但是我不知道如何在cocos2d iphone v3中实现这个主题的代码。 由于CCTextureCache已更改为CCTexture,并且不再具有sharedTextureCache属性。 @interface TextureHelper : NSObject + (void) preloadTextures; + (CCTexture2D *) textureForImageNamed:(NSString *) imageName; @end @implementation TextureHelper + (CCTexture2D *) textureForImageNamed:(NSString *) imageName { return [[CCTextureCache sharedTextureCache] textureForKey:imageName]; } + (void) preloadTextures { // or could read from a directory… NSArray *imageNames = @[ @"myImage1.png", @"myImage2.png" ]; for (NSString *imageName in imageNames) […]

支持多种移动解决scheme(cocos2d,ios)

我正在研究iOS游戏开发,想到的第一个问题是如何支持越来越多的iPhone解决scheme。 我已经看到了规范化屏幕坐标的Unity策略,但是我所看到的所有cocos2d教程似乎都是硬编码的像素位置。 这与iphone 4,5,6,6+都有不同的决议如何工作? (4比6是主要区别) 有处理这个问题的常见做法吗?

如何从Cocos2d x 3.x中的tmx文件中的对象获取值?

我想基于TMX地图文件中的对象在x坐标中设置我的精灵,这是我的代码: tileMap = cocos2d::TMXTiledMap::create("ground.tmx"); ground = tileMap->layerNamed("ground"); this->addChild(tileMap); TMXObjectGroup *objects = tileMap->objectGroupNamed("objects"); Dictionary *sign = (Dictionary*)objects->objectNamed("sign"); 我怎样才能得到在Cocos2d x tmx文件中的对象的值?

如何更新过时的iOS应用程序中的Cocos2D?

有没有办法将旧版本的cocos2d升级到最新版本或支持64位ios的2.2.6版本?

为Cocos2d设置CCMenu

我对Cocos2d编程非常陌生,正在考虑构建我的第一个应用程序。 我学习了一些与CCMenu和CCMenuItem相关的基础知识。 但是我想知道我是否可以提供animation,使得每个CCMenuItem都会先animation,然后出现在CCMenu中。 Cocos2d有可能吗? 我可以得到一些关于这个教程或样品? 谢谢。

触摸控制逻辑去哪里?

我正在创建一个游戏(或应用程序,这取决于你将如何定义它…)在屏幕上移动对象(与精灵)。 在这两种情况下,我已经把这个工作做了一半,但是我似乎无法完全使用一个工作。 我的问题是,我不知道应该在哪里处理对象。 我有一个单独的图层,其中包含该图层上的所有对象。 我把所有的触摸逻辑在这一层,它工作正常,但我只能移动一个对象(我必须声明一个currentObjectvariables来跟踪什么是移动),我不知道如何看看是否在没有currentObjectvariables的层上处理触摸。 这是我的触摸开始方法: -(BOOL)ccTouchBegan:(UITouch*)touch withEvent:(UIEvent*)event{ BOOL isTouchHandled = CGRectContainsBorder([current.sprite boundingBox], lastTouchLocation); return isTouchHandled; } 我也试图让对象本身的所有触摸控制,让我分开移动所有的对象,但我不能让对象对任何层variables或事件作出反应(我不知道如何得到查看图层中variables的当前状态的对象)。 该触摸的代码开始是: -(BOOL)ccTouchBegan:(UITouch*)touch withEvent:(UIEvent*)event{ BOOL isTouchHandled = CGRectContainsBorder([sprite boundingBox], lastTouchLocation); return isTouchHandled; } 它们之间的唯一区别是图层正在访问对象的实例variables,并且该对象访问自己的variables。 注意:这些function并没有在同一时间执行,我正在尝试一个,看看它是否工作,然后尝试另一个,看看它是否工作… 那么,我怎么解决这个问题? 有没有办法可以独立移动所有对象? 我有一些事物,一旦移动到某一点,移动物体就会发生反应,但是我希望在发生所有事件之后,物体也能够移动,我可以让它们对事件作出反应,并移动当前到下一个对象(控制触摸是在图层上),或者我可以独立移动所有的对象,但我不能访问图层的事件(控制与对象)…

BOX2D带有视差层的运动平台

我在x轴上使用了运动平台,所以我把线速度设置为b2vec2(5,0) 。 当玩家在平台上跳跃时,它就像是假设的那样工作。 但事情是,我的平台是在障碍层,我正在移动与视差层。 所以,如果我设置了运动平台跟踪障碍物层,那么物理效果将不起作用,玩家将会脱离平台。 我正在开发iOS和使用cocos2d api。 无论如何,这个呢?

Cocos2d-iPhone中的线程安全性

经过cocos2d的修改之后,我发现没有经典的游戏循环,所有的事情都是或多或less的事件驱动。 我想我可以把头绕在那里,没问题。 但是我无法find关于线程安全的任何信息。 说,我安排了每两秒发生一次,哪个线程将运行代码? 鉴于我无法find任何关于这一点,我想只有一个Cocos2d线程,一切都会好起来的。 尽管如此,这种隐含的假设并没有给我一个好的感觉。 知道胜于猜测。 😉 任何人都可以谈一谈这个话题?

玩家精灵在iPhone 4上移动较慢

我刚刚完成使用Cocos2D获取Xcode中的玩家精灵的移动/跳转animation。 基本运动algorithm是一个定时器,每0.01秒更新一次,将精灵位置更改为(sprite.position.x + xVel, sprite.position.y + yVel) 。 每次点击移动button,适当的速度(初始化为0)会改变为我select的速度,然后停止移动button将速度返回到0.这不是一个理想的解决scheme,但我很新,至less在互联网的帮助下工作。 所以我可能没有完全解释,但实际上Xcode的iPhone模拟器让我满意,但是当我为我的设备构建并在手机上运行它时,精灵的移动速度明显慢于Xcode。 起初,我认为它必须与iPhone 4的分辨率有关,使精灵的移动path长两倍,但我发现,如果我拉起多任务栏,然后返回到应用程序,速度有时会跳回到正常。 我的第二个理论是,代码只是低效率,并且让程序陷入困境,但我会看到这反映在帧率不是我吗? 它始终保持在59-60,并且Spritesheetanimation以正确的速度运行。 有没有人经历过这个? 这完全是一个非常明显的问题吗? 任何帮助(或优化我的运动方法的提示)将不胜感激!

为什么设置b2Body和Box2DSprite的位置?

在游戏中,我们为每个精灵添加一个正文,方法是: createBodyAtLocation:(CGPoint) forSprite:(Box2DSprite*)sprite 我们在其中创建主体,并将其附加到参数sprite.body = body; 然后我们设置正文的位置,但后来在代码中,在update方法中,我们还将精灵的位置设置为与正文相同的位置。 我想知道: 为什么我们要做两次? 因为我们已经确立了身体在世界上的地位,并且我们把两者之间的联系与sprite.body联系sprite.body 。