IPhone IPad 利用cocos2d开发游戏问题

1.Q:如何添加按钮?

   A:利用菜单或者精灵创建。

2.Q:为什么菜单按钮无法使用?

   A:1)必须将菜单项对象添加到菜单对象中。

         2)若利用菜单按钮进行场景切换时,若不使用切换特效,切记不要使用  
        [[CCDirector sharedDirector] replaceScene:[CCTransitionScene transitionWithDuration:1.2f scene:[MainMenu scene]]];

    这样的方式切换!只能使用:

      [[CCDirector sharedDirector] replaceScene:[MainMenu scene]];

3.Q: 为什么 int[3] lv_y = {832,642,652}; 不对??

  A:不要把其他语言中的东西放到c中好不?正确的写法是

    int lv_y[3] = {832,642,652};

4.Q:为什么lvArray = [[NSMutableArray arrayWithCapacity:10] retain];,在释放时却无法释放?

   A:[NSMutableArray arrayWithCapacity:10]不需要释放,所以无需要手动释放⋯⋯

5.Q:怎么创建两种普通时图片的按钮,并可进行切换?

   A:

=======================================================================================

iPhone游戏另一种常用的按键是toggle button。这种按钮被按下时将显示另一张图片。这可以用来开关是否显示控制杆。幸运的是,Cocos2D有一种用来实现这种按钮的类CCMenuItemToggle。首先在HelloWorldScene.h中再创建两个变量:

CCMenuItem *_plusItem; 
CCMenuItem *_minusItem;

别忘记在dealloc函数中添加清除代码:
[_plusItem release]; 
_plusItem = nil; 
[_minusItem release]; 
_minusItem = nil;

然后在init函数中添加:
_plusItem = [[CCMenuItemImage itemFromNormalImage:@"ButtonPlus.png" 
          selectedImage:@"ButtonPlusSel.png" target:nil selector:nil] retain];
_minusItem = [[CCMenuItemImage itemFromNormalImage:@"ButtonMinus.png" 
          selectedImage:@"ButtonMinusSel.png" target:nil selector:nil] retain];
CCMenuItemToggle *toggleItem = [CCMenuItemToggle itemWithTarget:self
selector:@selector(plusMinusButtonTapped:) items:_plusItem, _minusItem, nil];
CCMenu *toggleMenu = [CCMenu menuWithItems:toggleItem, nil];
toggleMenu.position = ccp(60, 120);
[self addChild:toggleMenu];

首先我们创建两个CCMenuItemImages,然后将它们添加到CCMenuItemToggle中。这个类可以在包含的item中转换,并检查当前哪个是可见的。
注意我们创建CCMenuItemImages时将回调函数设为nil,并添加到CCMenuItemToggle中。这是为了说明任何CCMenuItemImages的selector都不会调用,而只会调用CCMenuItemToggle的selector。我们可以很容易的在回调函数中指定哪一个item是可见的。
看看怎么写回调函数:
- (void)plusMinusButtonTapped:(id)sender {  
     CCMenuItemToggle *toggleItem = (CCMenuItemToggle *)sender;
     if (toggleItem.selectedItem == _plusItem) {
          [_label setString:@"Visible button: +"];    
     } else if (toggleItem.selectedItem == _minusItem) {
          [_label setString:@"Visible button: -"];
     }  
}

正如你所见,CCMenuItemToggle有一个selectedItem属性,这个属性可以说明拿个子item是当前可见的。

=======================================================================================

6.Q:怎么生成随机数?

   A:int random = arc4random()%2; //取值范围是[0,1]

7.Q:cocos2d游戏过程中的图片保存???

   A:在cocos2d例子RenderTextureTest中有!

8.Q:怎么让游戏兼容IPad和IPhone?

   A:在程序中动态的求得x、y的缩放比例,然后涉及到坐标神马的问题都乘以比例……

posted @ 2012-11-07 08:25  nzlov  阅读(226)  评论(0编辑  收藏  举报