Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 创建一个;“显影剂屏幕”;用于cocos2d中的游戏开发_Iphone_Ios_Cocos2d Iphone - Fatal编程技术网

Iphone 创建一个;“显影剂屏幕”;用于cocos2d中的游戏开发

Iphone 创建一个;“显影剂屏幕”;用于cocos2d中的游戏开发,iphone,ios,cocos2d-iphone,Iphone,Ios,Cocos2d Iphone,我目前正在iPhone上使用Cocos2D API开发一个游戏。进展顺利。但我遇到的一个问题是,每当我想更改变量时,我都必须重新编译。这是非常乏味的,尤其是现在我正在调整游戏性 有没有一种开发人员控制台屏幕的实现?我的意思是:我想有一个我加载的游戏屏幕类型,它包含我注册到游戏屏幕的变量列表(使用滚动条)。我希望能够当场修改这些变量 我记得在WWDC的一次活动中,他们在ipad上展示了这样一个屏幕。开发者只需按下一个按钮,游戏屏幕就会变成一个类似于开发者控制台的屏幕。我知道这个演示与Cocos2D

我目前正在iPhone上使用Cocos2D API开发一个游戏。进展顺利。但我遇到的一个问题是,每当我想更改变量时,我都必须重新编译。这是非常乏味的,尤其是现在我正在调整游戏性

有没有一种开发人员控制台屏幕的实现?我的意思是:我想有一个我加载的游戏屏幕类型,它包含我注册到游戏屏幕的变量列表(使用滚动条)。我希望能够当场修改这些变量

我记得在WWDC的一次活动中,他们在ipad上展示了这样一个屏幕。开发者只需按下一个按钮,游戏屏幕就会变成一个类似于开发者控制台的屏幕。我知道这个演示与Cocos2D没有任何关系,但是,如果它已经以某种形式存在,我希望重新使用这个代码,而不是自己编写

虽然如果我必须自己写,我真的不知道从哪里开始。因此,任何帮助都将不胜感激


谢谢

是(我相信)去年苹果WWDC的格雷姆·德瓦恩(Graeme Devine)对如何实现这样一个开发者控制台提出了一些建议(查看iTunes大学的视频)。中包含一个名为游戏控制台的示例。为了方便起见,我还从DropBox访问了GameConsole.zip。

这是一个严重的回溯回复,但我们实现了一个开发人员控制台,用于测试各个阶段,并在运行时修改播放器属性。实现方法是在游戏中的任意点点击屏幕左上角,打开控制台。从那里你可以根据自己的需要进行修改。实现的框架是覆盖EAGLView并自己处理touchesbreatedtouch回调。这里是实现

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  const CGFloat DEV_DASHBOARD_ENABLE_TOUCH_AREA = 20.0f;

  for (UITouch* t in touches)
  {
    CGPoint pt = [t locationInView:self];

        if (pt.x < DEV_DASHBOARD_ENABLE_TOUCH_AREA && pt.y < DEV_DASHBOARD_ENABLE_TOUCH_AREA)
        {
            ToolSelectorContainer* editorViewController = [[ToolSelectorContainer alloc] initWithNibName:@"ToolSelectorContainer" bundle:nil]; 

            if (editorViewController != nil)
            {
                CCScene* g = [CCDirector sharedDirector].runningScene;

                // Pause the game if we're in it playing
                //
                if ([g isKindOfClass:[Game class]])
                    [((Game *)g) menuPause];

                [[GSGCocos2d sharedInstance].navigationController pushViewController:editorViewController animated:YES];
                [editorViewController release];

                break;
            }
        }
    }

    #endif

    [super touchesBegan:touches withEvent:event];
}
-(void)touchesbeated:(NSSet*)toucheevent:(UIEvent*)event
{
const CGFloat DEV_仪表板_ENABLE_TOUCH_面积=20.0f;
适用于(UITouch*t in触控)
{
CGPoint pt=[t locationInView:self];
if(第x部分<开发仪表板>启用触摸区域和第y部分<开发仪表板>启用触摸区域)
{
ToolSelectorContainer*editorViewController=[[ToolSelectorContainer alloc]initWithNibName:@“ToolSelectorContainer”捆绑包:nil];
如果(editorViewController!=nil)
{
CCScene*g=[CCDirector sharedDirector]。运行场景;
//如果我们正在玩游戏,请暂停游戏
//
if([g是类:[游戏类]]))
[((Game*)g)menuPause];
[[GSGCocos2d sharedInstance].navigationController pushViewController:editorViewController动画:是];
[编辑视图控制器发布];
打破
}
}
}
#恩迪夫
[超级触摸开始:触摸事件:事件];
}

ifdef用于不为生产版本编译此代码。

niat idea。我总是只留下一个额外的菜单项(或增选“关于”屏幕)来测试内容。但是我从来没有想过有一个地方可以输入“cheats”,在没有重建的情况下动态地尝试简单的变量更改。+1谢谢你,我的好先生。这就是我要找的。我必须看看我是否能以某种方式将它集成到Cocos2D中。我会告诉你事情的进展。我会把这个问题再留一点时间,但如果没有其他人有更好的回答,我会接受你的答案。