Tag: cocos2d iphone

CGRect与一个angular度

我有一个线,这是一个使用这个代码的精灵 CGPoint diff = ccpSub(startLocation, endLocation); float rads = atan2f( diff.y, diff.x); float degs = -CC_RADIANS_TO_DEGREES(rads); float dist = ccpDistance(endLocation, startLocation); CCSprite *line = [CCSprite spriteWithFile:@"line.png"]; [line setAnchorPoint:ccp(0.0f, 0.5f)]; [line setPosition:endLocation]; [line setScaleX:dist / line.boundingBox.size.width]; [line setRotation: degs]; line.tag = 1; [_lines addObject:line]; [self addChild:line]; 现在在我的碰撞检测代码中,我使用下面的代码来创build一个CGRect: CGRect lineRect = CGRectMake( line.position.x – (line.contentSize.width/2), line.position.y – […]

我的GKMatch没有玩家…?

我成功地做了一个配对的屏幕出现。 我在我的iPhone和模拟器中运行我的游戏。 在这两种情况下,我都使用不同的Game Center帐户login。 我在两场比赛中都去参加比赛。 我按“现在玩”。 两场比赛都开始寻找比赛。 最后,两个游戏find一个匹配,并调用下面的函数: – (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match { self.myMatch = match; NSLog(@"%d",[[self.myMatch playerIDs]count]); } 但是我的控制台返回0.不是应该返回2吗?

发送数据错误?

typedef struct _protocol1 { int type; CGPoint pos; } Protocol1; -(void)sendData { NSError *error; Protocol1 msg; msg.pos = ccp(100,100); msg.type = 1; NSData *packet = [NSData dataWithBytes:&msg length:sizeof(Protocol1)]; [self.myMatch sendDataToAllPlayers: packet withDataMode: GKMatchSendDataReliable error:&error]; if (error != nil) { NSLog(@"error"]); } } 这是我的项目的一大块代码。 我得到一个错误。 但是,我不确定如何检索更多的信息来帮助我debugging。 有人能帮我吗? 对不起,我对iOS开发很新颖。 使用Cocos2d进行游戏。 编辑 我正在使用模拟器和我的iPhone来testing。 我怀疑这是问题,我已经得到了比赛的工作,一切…

不正确的iPhone方向?

我不明白为什么这不起作用。 我正在写一个游戏,涉及在屏幕上滚动块/列的块。 我将自己的方向严格限制在肖像上,但是并不如此。 当我调用下面的方法时,它是从锅里传递的速度。 使用日志,我能够看到,我的设备颠倒和平移作用就好像我的方向支持肖像。 我怎样才能完全closures除肖像以外的任何东西? 这里有一些代码来帮助解释我想做什么,并希望certificate我的理智。 bool horizontalPan = (fabs(velocity.x) >= (fabs(velocity.y))); if (horizontalPan) { if (fabs(velocity.x) > MAX_VELOCITY) { if (velocity.x > 0) velocity = CGPointMake(MAX_VELOCITY, 0); else velocity = CGPointMake(-MAX_VELOCITY, 0); } else { velocity = CGPointMake(velocity.x, 0); } velocity = ccpMult(velocity, PAN_SENSITIVITY); [self panRow:velocity object:object]; } else { if (fabs(velocity.y) > […]

cocos2d从精灵表中加载随机图片

好,所以我正在为一个我想做的游戏进行概念化,并且玩了一点点,但遇到了一个问题。 我正在学习iOS编程和学习cocos2d。 我有大约20个图像。 它们的尺寸都是64×64。 基本上它们被分成5种不同的形状(正方形,圆形等),每种形状有5种不同的颜色。 我想要做的,就是随机地把它们放在屏幕上。 每列只会有一个下降。 在屏幕上可以有重复的内容,我其实是想要的。 虽然它是随机的,我想控制一个新的颜色的介绍。 我一直在绞尽脑汁想出如何做到这一点。 正如我所说,我对这个很新,所以任何帮助都会非常棒。 如果我可以如此大胆,可以采取任何答案的格式来“解释它像我5我只做了约1年”

Cocos2d V3 iOS – 如何从App Delegate访问runningScene

我想要在App Delegate中访问我的运行场景。 问题是[[CCDirector sharedDirector] runningScene]返回一个CCScene对象,而不是我场景MyMainScene的实际类。 如果我尝试打电话给我的任何自定义方法,我会得到: -[CCScene customMethod]: unrecognized selector sent to instance 0x156bedc0 我已经试过像这样 CCScene *scene = [[CCDirector sharedDirector] runningScene]; MyMainScene *mainScene = (MyMainScene*)scene; [mainScene customMethod]; 但是这没有效果。 上面的mainScene对象仍然返回mainScene的类名,并在运行时崩溃。 我也试过dynamic铸造,如这里build议Objective-C dynamic_cast? 。 通过dynamic投射,我不会崩溃,但方法总是返回null。 更新 – 更多的代码 AppController实现 #import "cocos2d.h" #import "AppDelegate.h" #import “ IDFAMainScene.h” @implementation AppController – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // default code […]

onTouch事件不被调用,当精灵离开地图的初始部分?

当我的播放器被移动到地图的右上方时,看起来没有onTouch事件被调用(把NSLog语句放进来确认)。 地图足够大,当层到达顶部或右侧时,仍然可以稍微看到地图,但是当点击任何进一步的内容时,屏幕上最初加载的内容不会触发事件,并且字符是卡住。 有任何想法吗? – (void)setCenterOfScreen:(CGPoint) position { CGSize screenSize = [[CCDirector sharedDirector] viewSize]; int x = MAX(position.x, screenSize.width/2); int y = MAX(position.y, screenSize.height/2); x = MIN(x, theMap.mapSize.width * theMap.tileSize.width – screenSize.width/2); y = MIN(y, theMap.mapSize.height * theMap.tileSize.height – screenSize.height/2); CGPoint goodPoint = ccp(x,y); CGPoint centerOfScreen = ccp(screenSize.width/2, screenSize.height/2); CGPoint difference = ccpSub(centerOfScreen, goodPoint); self.position = […]

每隔三场比赛播放插页式广告

我正在使用HeyZap中介SDK。 我把所有的调解都设置得很好,但我希望插页式广告能够显示每一个第三场比赛。 我已经尝试了一些堆栈溢出的解决scheme,但它们适用于AdMob。 现在,我有: -(void) GameOver { …. [HZInterstitialAd show]; } 我如何做到这一点?

我如何从GLuint中检索相应的纹理名称?

编辑5:优化级别构build设置: 编辑4:我试图改变构buildconfiguration把所有“debugging”,然后运行“testing”。 奇怪的是,它没有崩溃大约20次(我不断装载和卸载各种GameScenes与不同的资产)。 在第二十一次(即使不是统计上相关的),我还以为它可能不会再崩溃了,但它已经崩溃了。 总结仍然不可用,所以我想知道如果我正确地做,或者如果有一些其他问题..这里是生成configuration和崩溃报告: 编辑3:重要的是,这个错误只发生了一些时间,像6/7运行中的1,所以我觉得很难隔离它。 我有一些严重的麻烦理解哪些纹理获取此NSAssert失败。 我已经尝试了几种方法,但都没有工作(或者最有可能的只是我有点太愚蠢:))。 在debugging器中,我可以看到GLuint信息。 在互联网上阅读,我发现这是一种引用框架(一种指针)的方式。 我认为应该有办法从batchNode plist文件检索框架名称,并想知道如果这个GLuint数字可以以某种方式对应于plist文件中的帧的顺序。 NSAssert( !batchNode_ || texture.name == batchNode_.texture.name , @"CCSprite: Batched sprites should use the same texture as the batchnode"); /** texture name */ @property(nonatomic,readonly) GLuint name; 我尝试了这些方法,但他们捕捉到所有情况: //From CCSprite.m -(void) setTexture:(CCTexture2D*)texture { if(!batchNode_ || texture.name != batchNode_.texture.name) { CCLOG(@""); // I added a debug […]

Cocos2d-x是游戏良好的开发平台吗?

我刚学过Cocos2d,但我不是专家。 但是有朋友告诉我要学习Cocos2d-x。 我应该更喜欢Cocos2d上的Cocos2d-x? 我听说使用多平台开发的技术不如本地的。 有人可以在这方面帮助吗? 任何input将不胜感激。