我怎样才能在Cocos2D框架中绘制填充多边形? 下面的代码绘制聚合,但没有antialiasing.What我应该改变? void ccFillPoly( CGPoint *poli, int points, BOOL closePolygon ) { // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY // Needed states: GL_VERTEX_ARRAY, // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glVertexPointer(2, GL_FLOAT, 0, poli); if( closePolygon ) // glDrawArrays(GL_LINE_LOOP, 0, points); glDrawArrays(GL_TRIANGLE_FAN, 0, points); else glDrawArrays(GL_LINE_STRIP, 0, points); // restore default state […]
我之前发布了一些非常类似的东西,但是我觉得这个post很混乱,所以我正在重做。 这是设置。 我正在使用SpriteBuilder。 我有2个CCB类,MainScene.ccb和Scroll.ccb。 Scroll.ccb是一个带有button的图层。 MainScene包含一个CCScrollView和一个CCLabelTTF。 CCScrollView正在加载Scroll.ccb。 CCScrollView占用MainScene接口的一半,另一半是一个CCColor,它有标签。 当我点击CCScrollView上的button时,我想MainScene上的标签改变其文本。 我遇到的问题是标签文本不会改变。 但是,如果我在button方法内写入NSLog输出日志中的文本,这是否工作。 我包括四张照片,以帮助您更好地了解情况。 http://imgur.com/a/77XyJ 在我的主要项目上,我一直坚持了一个多星期。 我真的不知道该怎么做,我已经尝试了一些没用的东西,而且我已经没有想法了。 编辑:好吧,所以我得到了一点,但进一步在debugging这个问题。 我在scrollview中插入了一个标签,并将其命名为Label2。 在button方法下,我添加了“Label2.string = @”Test“',当我运行程序并单击button时,scrollview上的标签改变了。 所以似乎当button被点击时,它在MainScene中查找该方法并find它,但它不能更新不同CCNode上的标签。
我找不到任何有用的教程或解释如何使用CCScrollView 。 我有一个网格布局的精灵和标签(iOS游戏上市成果)。 在屏幕上有超过可以适合,所以我希望用户能够滚动。 为了滚动,用户将向上滑动/向上滑动,以显示较低的精灵等。 我find了一些代码示例,他们似乎表明你只需要添加你的内容节点到滚动节点,它会照顾剩下的事情。 这似乎并不奏效。 没有滚动,并且滚动层上的平移/触摸事件似乎不会被触发。 closuresbutton,我在同一个孩子(兄弟的滚动视图)不再工作。 我没有使用SpriteBuilder。 // Node to hold all sprites/labels scrollContents = [CCNode node]; // I add a bunch of sprites/labels in a grid view for( NSString *key in badgeKeys ){ // logic to load the sprite would be here CCSprite *badge = [CCSprite spriteWithSpriteFrame:frame]; badge.positionType = CCPositionTypeNormalized; badge.position […]
我一直试图在Xcode上用鼠标事件绘制精灵之间的精灵线。 我一直按照在这个链接论坛上给出的步骤: cocos2d论坛 但是当我运行代码时,我得到了模拟器的所有路线。 像这样。 snapshot1 该行应该停止的第二个鼠标精灵生成的代码,但它不,并继续前进。 我的场景是这样的。 我的课 #import <Foundation/Foundation.h> #import "cocos2d.h" #import "Constants.h" #import "SceneManager.h" @interface EscenaInfo : CCLayer{ CGPoint lastTouchPoint; CCSprite * background; } @property (nonatomic, assign) BOOL iPad; @end 我的.mm #import "EscenaInfo.h" @implementation EscenaInfo @synthesize iPad; – (void)onBack: (id) sender { /* This is where you choose where clicking 'back' sends […]
我试图做一个矩形和一个圆之间的碰撞检测。 我想出了这个方法: -(BOOL) isCollidingRect:(CCSprite *) spriteOne WithSphere:(CCSprite *) spriteTwo { float diff = ccpDistance(spriteOne.position, spriteTwo.position); float obj1Radii = [spriteOne boundingBox].size.width/2; float obj2Radii = [spriteTwo boundingBox].size.width/2; if (diff < obj1Radii + obj2Radii) { return YES; } else { return NO; } } 这是我如何检查它: if ([self isCollidingRect:player WithSphere:blocker] == true) { [self playerdeathstart]; } 这似乎在矩形的一边正常工作,但它不在上面或下面。 在顶部和底部,碰撞发生得太早。 有没有办法让我的碰撞被正确的检测出来? […]
我有一个小问题。 在本教程中如何使用Cocos2D 2.X制作基于Tile的游戏使用了cocos2d V2.0,我想在cocos2d V3.0中做这个。 所以,这是行不通的! 谢谢! (我不会说英文) 我觉得在这一行的问题 – self.position = viewPoint; @property (strong) CCTiledMap *tileMap; @property (strong) CCTiledMapLayer *background; @property (strong) CCSprite *player; – (id)init { // Apple recommend assigning self with supers return value self = [super init]; if (!self) return(nil); // Enable touch handling on scene node self.userInteractionEnabled = YES; self.tileMap […]
在iOS 6下,如果我没有指定一个明确的位置,我所有的CCMenus默认都会出现在屏幕上。 在iOS 7下,菜单位于屏幕外 。 我必须在iOS 7下分配一个明确的位置吗? iOS 6: IOS 7:
到目前为止,我正在使用cocos2d引擎来创build一个游戏,我想实现一个QR阅读器。 到目前为止,我已经创build了一个CCScene,CCScene有一个菜单button,它导致了一个onScan方法: -(void) onScan:(id)sender{ // ADD: present a barcode reader that scans from the camera feed ZBarReaderViewController *reader = [ZBarReaderViewController new]; reader.readerDelegate = self; ZBarImageScanner *scanner = reader.scanner; // TODO: (optional) additional reader configuration here // EXAMPLE: disable rarely used I2/5 to improve performance [scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0]; // present and release […]
我得到这个错误“应用程序包不包含有效的标识符”后,我的应用程序成功编译。这个错误阻止我的游戏启动在手机或模拟器。 我不知道如何解决这个问题,因为我正在学习如何使用Cocos2d 制作太空射击游戏 。
在我的应用程序,它在Cocos2D版本1.1工作正常。 当我升级到2.0rc0a,我现在只是看到一个黑屏,直到我退出应用程序,我得到以下4个错误不间断: OpenGL error 0x0506 in -[CCSprite draw] 532 OpenGL error 0x0506 in -[CCParticleSystemQuad draw] 461 OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 543 OpenGL error 0x0506 in -[CCGLView swapBuffers] 280 所以我GOOGLE了这一点,似乎应用程序无法find着色器文件 。 什么着色器文件? 有没有一个特定的名称,或者它是所有的 Cocos2D文件? 另外我将如何解决这个问题? 我目前在我的项目中没有警告或错误。 谢谢!