1

我正在开发一个儿童读物应用程序,并希望为每个场景中的角色对话动态填充语音气泡。我得到了动画和对话的工作,下面是代码。我的书中会有多页,每一页都有多个角色,每个角色都有多个对话。使它成为通用方法的最佳方法是什么,以便我可以重复使用它。我可以将对话存储在 TEXT/XML 文件中,并根据以下参数动态读取和显示它们:页码、字符数、对话数吗?

UIImage *bubble = [[UIImage imageNamed:@"BubbleLefthand.png"] 
                               resizableImageWithCapInsets:UIEdgeInsetsMake(15, 21, 15, 21)];
            UIImageView *imgView = [[[UIImageView alloc] initWithImage:bubble] autorelease];
            imgView.frame = CGRectMake(250, 350, 0, 0);
            UILabel  *xlabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
            xlabel.text = @"This is a dialogue text!!!";

            [imgView addSubview:xlabel];
            [self.view addSubview:imgView];
            [UIView animateWithDuration:0.5
                             animations:^(void) {
                                 imgView.frame = CGRectMake(250, 350, 300, -40);
                                 xlabel.frame = CGRectMake(30, 10, 200, 20);
                             } completion:^(BOOL finished) {
                                 STLog(@"ChildrenBookViewController ==> SPPECH BUBBLE ANIMATION COMPLETE. Switch Case: %d", pageNum);
                             }];

目前我的对话显示像附加截图。 在此处输入图像描述

4

1 回答 1

0

至于组织对话,在最高级别按页面组织似乎很好。您可以将背景图像定义为页面的属性。

在页面下方的一级,我认为最好定义“事件”。每个事件对应于用户的一个动作,或者您甚至可以定义一个自动跟随前一个事件的事件。

在每个事件中,您可以有不同的类型:显示对话、隐藏对话、控制背景音乐、控制音效。

  • 对于显示/隐藏对话事件,应定义对话 id(对话可以直接放在此处或收集在单独的文件中),加上气泡的方向,可能还有尺寸。字符 id 可能没有用,除非您使用它来更改文本气泡或字体的外观。

  • 对于控制背景音乐,您可以有一个属性来指定是播放还是停止当前播放的音乐。要播放的背景音乐也可以指定为子节点。

  • 对于音效,您可以指定要播放的曲目。

这是我想到的一些想法,因为我认为该应用程序可以具有哪些功能。如果您提供更多详细信息,我可以提供更多想法。


关于显示的附带问题:确保png文件具有透明的外边缘,并将 UIImageView 背景颜色设置为[UIColor clearColor].

于 2012-06-29T13:10:57.797 回答