我开发了20个级别的ios游戏。 我在开始屏幕上有菜单,它具有20个级别的20个按钮。

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

我知道它的基本知识,这是我在ios中的第一款游戏。所以请保持温柔,感谢任何想法。 :)

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

===============>>#1 票数:2

在您的应用程序委托中,您可以具有一个变量,该变量指向他完成的级别,并且您还将具有基于该变量启用和禁用按钮的功能。

要禁用按钮,您可以使用

button.enabled = NO;

当用户结束级别时,增加级别已达到的变量并启用/禁用按钮

使用用户默认值的示例

设置currentLevel

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

得到currentLevel

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

===============>>#2 票数: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"];

   }

===============>>#3 票数: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;之后,将显示视图,并更改已完成级别的图像。

存储数据

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

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

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

===============>>#4 票数:-1

最初,您将除button1之外的所有其他按钮都禁用,如下所示:

button2.enabled = FALSE;

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

button2.enabled = TRUE;

===============>>#5 票数:-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

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

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

  ask by vishnu translate from so

未解决问题?本站智能推荐:

2回复

在cocos2d游戏中实现关卡的最佳实践

我正在制作一个简单的cocos2d冒险游戏,但不知道如何实现任何类型的关卡。 我搜索了教程,但找不到任何教程。 有什么我可以用来计算cocos2D中的水平吗? 谢谢
1回复

在Cocos-2d中使用滑块控制动画或进行进度控制

我想使用CCMoveTo函数和CCspritesheets执行定时控制的动画。 但是,我的关键点是我想更新Some Slider Control中Animation的每个进度。 此外,用户还可以手动更改滑块的进度,这意味着滑块的更改应与动画的状态保持同步。 简而言之,应使
1回复

cocos-2d:当我通过任务管理器关闭它时,我的应用程序崩溃了

我有奇怪的问题,当我通过任务管理器关闭我的应用程序时,我的应用程序崩溃了 抛出“线程:1信号SIGKILL”错误,我根本无法重新打开我的应用程序。 其他时候它运作得很好。 请有人帮我解决这个问题。 我是cocos-2d的新手所以请保持温柔:(谢谢。
1回复

Cocos-2d操作— CCallFunc不执行任何操作

基本上,我正在尝试为精灵创建动画。 向右移动时,我要播放一个动画,而向左移动时,我要播放一个动画。 这是我的代码-完全没有任何反应,精灵仅显示在屏幕上。
1回复

Cocos-2d:ReplaceScene期间内存泄漏

我有两个级别:level1.mm和level2.mm 在Level1.mm中,我使用名为“ skip level” MenuItem的按钮来Replacescene转到level2.mm,但是当调用该方法时,我的应用程序崩溃,并执行错误。 但是如果我使用PushScene可以正确地进
1回复

Cocos2d,需要将nsuserdefault对象ID保存到游戏中心

我有一个对象ID“分数”,需要保存到排行榜中。 我以一个例子为例 除非我需要保存它。 而且,因为它在同一文件中,所以不需要游戏工具包帮助程序参考。
1回复

Cocos2d:在游戏中添加放大缩小

我在cocos 2d中开发类似mario的游戏,它具有向左,向右按钮和跳转按钮。 我想在按下左或右按钮时稍微放大屏幕,并在释放按钮时恢复到正常状态。 有什么想法可以在cocos 2d中实现吗?
1回复

游戏中心排行榜与cocos2d游戏的集成

我为我的cocos2d游戏设置了3个排行榜。 当我单击排行榜按钮时,第一页就是排行榜之一。 我必须点击“后退”按钮以查看所有排行榜并选择另一个。 这是我的代码 并注释掉LeaderboardController.category行之后。 它仍然从排行榜之一开始。 那么有没有一种
2回复

在cocos2d游戏中添加放大镜

我想在cocos2d游戏中添加一个放大镜。 这是我在网上找到的: http : //coffeeshopped.com/2010/03/a-simpler-magnifying-glass-loupe-view-for-the-iphone我已经改变了一下代码:(因为我不知道我想让放大镜跟随我
3回复

游戏中心cocos2d问题

我是否需要iPhone开发人员证书和应用商店上可用的应用才能实现游戏中心。 在您的游戏中实现游戏中心排行榜是否容易,如果有的话,可以这样做。 我已经有一个计分器,但是不确定如何将其添加到游戏中心。 关于将游戏中心实现到cocos2d中的任何好的教程,如果可以,我可以看到一个链接(是