让我们创建一个树皮添加游戏iPhone应用程序(第2部分)

大家好。藤田裕太(@HofuCamera)是。

从上次开始,这次我想创建一个“尖叫游戏iPhone应用程序”。

这个应用程式是一款游戏,可让您思考在显示一定数量后要添加的内容。另外,选择数字时我想发出可爱的声音。通过将声音变成狗或猫,它也可以成为孩子们的应用程序。
在本章中,我想创建加法部分。

让我们开始吧!

<<到最后一次的路线>>


让我们为iPhone应用程序开发准备环境
开发iPhone应用程序需要什么
让我们开发没有程序的红卡iPhone应用程序
让我们开发一个没有程序的彩色卡片应用程序
让我们开发您最喜欢的网站集应用
让我们开发一个笔记邮件应用程序(第1部分)
让我们开发一个笔记邮件应用程序(第2部分)
让我们开发一个在10秒内停止运行的“即时iPhone应用程序”(第1部分)
让我们开发一款仅需10秒即可停止运行的游戏,只需一次使用时间(第2部分)
让我们开发一个谎言电话应用
让我们创建一个密码iPhone应用程序(第1部分)
让我们创建一个密码iPhone应用程序(第2部分)
让我们创建一个密码iPhone应用程序(第3部分)
让我们创建一个密码iPhone应用程序(第4部分)
待办事项清单让我们创建一个iPhone应用程序(第1部分)
让我们创建一个待办事项列表iPhone应用程序(第2部分)
待办事项清单让我们创建一个iPhone应用程序(第3部分)
待办事项清单让我们创建一个iPhone应用程序(第4部分)
让我们创建一个树皮添加游戏iPhone应用程序(第1部分)


介绍部分的修改

仅显示一次介绍部分

上次,我使用可可豆荚进行介绍。
通常,首次安装和启动该应用程序时,简介仅显示一次,此后不显示。
首先,我想实现一个功能,该功能只显示一次介绍部分,然后即使启动应用程序也不显示它。

使用NSUserDefaults管理

在之前的讲座中,您还了解了如何使用“ NSUserdefaults”将数据永久保存在应用程序中。这次我将数据放入,如果显示了简介,则将以下次不会显示该简介的形式创建它。

首先,声明使用NSUserdefault,如下所示。
xcode_gamese1

NSUserDefaults *ud;
xcode_gamese0
    ud = [NSUserDefaults standardUserDefaults];

另外,编写如下。
xcode_gamese2

BOOL flag = [ud boolForKey:@"intro"];
   
    if (flag != YES) {
        [self showIntro];
        [ud setBool:YES forKey:@"intro"];
    }

我将逐步解释。
首先,从ud中提取布尔值(是或否),该值是NSUserDefaults的变量,键值是intro。由于在默认状态下不是YES(因为我没有在键值介绍中输入任何值)

if (flag != YES) {

如果标志的内容不是“是”

[self showIntro];

[ud setBool:YES forKey:@"intro"];

调用showIntro方法,即进行介绍。
接下来,输入YES,并输入键值简介。
然后,下次使用键值介绍检索Bool值时,它将为YES,因此该程序将不包含在if语句中。
该布尔值半永久性存储,因此该介绍随后消失。

产生问题

现在,准备一个int类型变量以包含所讨论的数字。
xcode_gamese3

int question;

另外,将由随机数生成的数字放在这个称为问题的变量中。
xcode_gamese4

question = (int)arc4random()%10;

然后将标签放在情节提要上。
该标签将显示问题编号。
xcode_gamese5
更改字符。
xcode_gamese6
另外,用于输入数字的文本字段也放置在屏幕上。
xcode_gamese7
贴上标签+
xcode_gamese8
在屏幕上放置另一个文本字段。
xcode_gamese9

使用可可豆荚

准备键盘

现在再次使用可可豆荚。
这次,我们将处理键盘。
除普通键盘外,还要使用数字专用的键盘。
在Podfile中描述如下。
xcode_gamese10

吊舱‘MMNumberKeyboard’

接下来,打开终端并通过cd→像以前一样拖放到项目所在的层次结构。
xcode_gamese11
最后,编写pod install并按Enter。然后将开始导入项目。
xcode_gamese12
导入过程将开始。
xcode_gamese13
完成所有操作后,键入exit退出终端。
xcode_gamese14

这次使用的是iOS的以下MMNumberKeyboard。

//github.com/matmartinez/MMNumberKeyboard
xcode_gamese15

接下来,将此MMNumberKeyboard导入程序。

xcode_gamese16
#import “MMNumberKeyboard.h"

还请参考说明写委托。
xcode_gamese17

此外,如如何使用MMNumberKeyboard中所述,编写代码如下。
xcode_gamese18

    // Create and configure the keyboard.
    MMNumberKeyboard *keyboard = [[MMNumberKeyboard alloc] initWithFrame:CGRectZero];
    keyboard.allowsDecimalPoint = YES;
    keyboard.delegate = self;

接下来,让程序识别屏幕的各个部分。

选择一个文本字段,如下所示,并在按住Command的同时拖放。我在这里将其命名为textfield1。
xcode_gamese19

以相同的方式识别其他文本字段。
这被称为textfield2。
xcode_gamese20
xcode_gamese21

另外,同时编写MMNumberKeyboard和委托方法。
xcode_gamese22

- (BOOL)numberKeyboardShouldReturn:(MMNumberKeyboard *)numberKeyboard
{
    // Do something with the done key if neeed. Return YES to dismiss the keyboard.
    return YES;
}

另外,我们将安排文本字段的外观。
如下所述描述textfield1和textfield2。
但是,我稍后将对此进行更改。
xcode_gamese23
更改后的程序如下。

textField1.inputView = keyboard;
    textField1.text = @"";
    textField1.placeholder = @"数字1";
    textField1.font = [UIFont systemFontOfSize:24.0f];
    textField1.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

textField2.inputView = keyboard;
    textField2.text = [NSString stringWithFormat:@"%d",number];
    textField2.placeholder = @"数字2";
    textField2.font = [UIFont systemFontOfSize:24.0f];
    textField2.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

接下来,将答案匹配按钮放在屏幕上。
xcode_gamese24

另外,让程序识别它。
xcode_gamese25
我把它命名为答案。
xcode_gamese26

我认为现在textfield2中的数字部分存在错误。
现在,我们将创建此数字,但是在通过随机数生成有问题的数字并将其显示在标签上之后,我们还将在文本字段2中填充该随机数。

我想根据游戏规则以及该数字应添加到文本字段2中的数字中做出正确/错误的判断。

点击答案匹配按钮时,将执行正确/错误判断。

现在,准备一个要放入文本字​​段2的框。
xcode_gamese27

    int number;

并将生成随机数的数字放入数字中。 (我稍后会更改)
xcode_gamese28
然后将数字转换为字符串。这称为演员表。
xcode_gamese29
在判断出问题是正确还是不正确之后,请创建一个位置来重置问题。
我将按钮放在屏幕顶部,将其命名为reset,并将其命名为reset方法。
xcode_gamese30
在这里,我们将描述按下重置按钮时的处理。
xcode_gamese31
我们在这里所做的是用一个随机数重新填充数字,然后清空textfield1字符串。接下来,让textfield2中的文本为数字。

另外,让程序识别所涉及号码的标签。
我将其命名为resultLabel。
xcode_gamese32
xcode_gamese33
接下来,在相关号码的标签上反映生成随机数的号码。
在问题中生成随机数后,将数字转换为字符串并将其作为字符反映在标签上。
xcode_gamese35

resultLabel.text = [NSString stringWithFormat:@"%d",question];

此外,按复位键时,相关号码也会更新。
xcode_gamese36

    resultLabel.text = [NSString stringWithFormat:@"%d",question];

设置随机数的范围

在这里,我想为随机数设定一个范围。
更改viewDidLoad。
xcode_gamese39

    int question2 = 5.0 + arc4random() % 6; //5から10までの乱数を取得
    question = question2;

然后数字也指定范围。
xcode_gamese40

   int number2 = rand()%3 + 1; //1から3までの乱数を取得
    number = number2;

以相同的方式更改重置按钮部分。
xcode_gamese41

    int question2 = 5.0 + arc4random() % 6; //5から10までの乱数を取得
    question = question2;
xcode_gamese42
   int number2 = rand()%3 + 1; //1から3までの乱数を取得
    number = number2;

最后,准备一个盒子来放入数字以进行正确性判断。
xcode_gamese43

int result;

在答案部分中编写如下。
xcode_gamese45

  result = number + [textField1.text intValue];

    if (result == question) {
        resultLabel.text = @"正解!";
    }else{
        
        resultLabel.text = @"間違い!";
        
    }

首先,添加textfield2中使用的数字和textfield1中输入的字符串,将其转换为数字并将其放入结果中。

如果结果数与问题数(即问题的值)相同,
resultlabel的文本正确,否则不正确。

让我们来看看模拟器

然后左上▶单击按钮启动模拟器并进行检查。
我会尝试错的。
我正在尝试查看2 + 2 = 8。
xcode_gamese47
如果点击答案匹配按钮,您将犯错!被审判。
xcode_gamese48
接下来,让我们检查3 + 2 = 5。
xcode_gamese49

它显示为正确。
xcode_gamese50

最后

它怎么样?

这样,除了介绍之外,还可以通过将其写入Podfile轻松导入键盘等,并且开发人员可以专注于逻辑部分。

接下来,我将添加一个程序,以便在按下键盘时会发出声音。另外,我想设置背景图片,使其成为一个教育应用程序,它将使孩子们开心。下次我们期待。

撰写本文的人

yuta

从零开始创建专业的Instagram风格图像处理iPhone应用程序 特別クーポン配布中! 詳しくは从这里! エンジニアでプロデューサー ピーターティールが大好きです! Twitter:藤井裕太 質問はお気軽にどうぞ!