COCOS-2d:NEED想要在游戏中实现等级进步

时间:2012-07-03 12:11:56

标签: iphone ios cocos2d-iphone

我开发了一个20级的ios游戏。 我在启动屏幕上有菜单,有20个级别的20个按钮。

我需要的是,例如如果用户没有完成1级2级按钮就不应该启用,依此类推。如果用户在游戏中完成某些级别,则应启用下一级别。

我知道它非常基本,这是我在ios的第一场比赛。所以请温柔,任何想法都将不胜感激。 :)

注意:我的游戏完全是cocos 2d。在cocos2d中的任何想法都是好的:)

5 个答案:

答案 0 :(得分:2)

在您的app委托中,您可以拥有一个指向他完成的级别的变量,并且您还将拥有一个基于该变量启用和禁用按钮的函数

要禁用按钮,您可以使用

button.enabled = NO;

当用户结束关卡时,将关卡达到变量并启用/禁用按钮

使用用户默认值的示例

设置currentLevel

[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:currentLevel]
                                         forKey:@"level"];
[[NSUserDefaults standardUserDefaults] synchronize];

获取currentLevel

currentLevel = [[[NSUserDefaults standardUserDefaults] valueForKey:@"level"] intValue];

答案 1 :(得分:2)

您可以使用NSUserDefaults来记住玩家已完成的等级。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"savedGameLevel"] ) {
    NSNumber *num = [defaults objectForKey:@"savedGameLevel"];
}

然后你可以启用/禁用像

这样的按钮
 for(UIButton *levelBtn in self.yourView.subviews)
 {
     if(levelBtn.tag == [num intValue] + 1)
         [levelBtn setEnabled:YES];
     else
         [levelBtn setEnabled:NO];

 }

//用于保存游戏状态

 -(void)saveLevelAsFinished
   { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"1" forKey:@"savedGameLevel"];

   }

答案 2 :(得分:1)

使用“custombutton”class.set BOOL变量创建所有按钮。

@interface CustomLabel : UIButton
{
  BOOL *is_level_completed;

}
@property (nonatomic, retain)BOOL *is_level_completed;

创建按钮时设置btn.is_level_completed = NO;完成每个级别设置后btn.is_level_completed = YES;之后检查viewwillappear并更改图像以查看已完成的级别。

存储数据

设置按钮的标记值(如1,2,3 ...),并在使用以下代码完成级别存储NSUserDefaults中的标记值时,

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:btn.tag forKey:@"Completed_level_no"];

在viewWillAppear中获取完成的级别并更改按钮的图像。

答案 3 :(得分:-1)

最初,您按下按钮1禁用每个按钮,如下所示:

button2.enabled = FALSE;

等,然后用户完成第一级make button2启用,如下所示:

button2.enabled = TRUE;

答案 4 :(得分:-1)

这是一个伪代码:

for (int i=1; i<=count;i++)
    button[i].enable() //This method will enable the button


for (int i=count+1; i<=20; i++)
    button[i].disable() //This method will disable the button

基本上,第一个循环迭代直到计数(达到的级别数)并相应地启用按钮。类似地,第二个循环从下一个按钮开始迭代并禁用其余按钮。

如果所有按钮都被启动为禁用,则可以避免第二个循环。