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

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

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

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

让我们开始吧!

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


让我们为iPhone应用程序开发准备环境
开发iPhone应用程序需要什么
让我们开发没有程序的红卡iPhone应用程序
让我们开发一个没有程序的彩色卡片应用程序
让我们开发您最喜欢的网站集应用
让我们开发一个笔记邮件应用程序(第1部分)
让我们开发一个笔记邮件应用程序(第2部分)
让我们开发在10秒内停止的“ Just Time iPhone App”(第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:藤井裕太 質問はお気軽にどうぞ!