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的缩放比例,然后涉及到坐标神马的问题都乘以比例……