大家好。藤田裕太(@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,如下所示。
NSUserDefaults *ud;

ud = [NSUserDefaults standardUserDefaults];
另外,编写如下。
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类型变量以包含所讨论的数字。
int question;
另外,将由随机数生成的数字放在这个称为问题的变量中。
question = (int)arc4random()%10;
然后将标签放在情节提要上。
该标签将显示问题编号。
更改字符。
另外,用于输入数字的文本字段也放置在屏幕上。
贴上标签+
在屏幕上放置另一个文本字段。
使用可可豆荚
准备键盘
现在再次使用可可豆荚。
这次,我们将处理键盘。
除普通键盘外,还要使用数字专用的键盘。
在Podfile中描述如下。
吊舱‘MMNumberKeyboard’
接下来,打开终端并通过cd→像以前一样拖放到项目所在的层次结构。
最后,编写pod install并按Enter。然后将开始导入项目。
导入过程将开始。
完成所有操作后,键入exit退出终端。
这次使用的是iOS的以下MMNumberKeyboard。
//github.com/matmartinez/MMNumberKeyboard
接下来,将此MMNumberKeyboard导入程序。

#import “MMNumberKeyboard.h"
还请参考说明写委托。
此外,如如何使用MMNumberKeyboard中所述,编写代码如下。
// Create and configure the keyboard. MMNumberKeyboard *keyboard = [[MMNumberKeyboard alloc] initWithFrame:CGRectZero]; keyboard.allowsDecimalPoint = YES; keyboard.delegate = self;
接下来,让程序识别屏幕的各个部分。
选择一个文本字段,如下所示,并在按住Command的同时拖放。我在这里将其命名为textfield1。
以相同的方式识别其他文本字段。
这被称为textfield2。
另外,同时编写MMNumberKeyboard和委托方法。
- (BOOL)numberKeyboardShouldReturn:(MMNumberKeyboard *)numberKeyboard { // Do something with the done key if neeed. Return YES to dismiss the keyboard. return YES; }
另外,我们将安排文本字段的外观。
如下所述描述textfield1和textfield2。
但是,我稍后将对此进行更改。
更改后的程序如下。
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;
接下来,将答案匹配按钮放在屏幕上。
另外,让程序识别它。
我把它命名为答案。
我认为现在textfield2中的数字部分存在错误。
现在,我们将创建此数字,但是在通过随机数生成有问题的数字并将其显示在标签上之后,我们还将在文本字段2中填充该随机数。
我想根据游戏规则以及该数字应添加到文本字段2中的数字中做出正确/错误的判断。
点击答案匹配按钮时,将执行正确/错误判断。
现在,准备一个要放入文本字段2的框。
int number;
并将生成随机数的数字放入数字中。 (我稍后会更改)
然后将数字转换为字符串。这称为演员表。
在判断出问题是正确还是不正确之后,请创建一个位置来重置问题。
我将按钮放在屏幕顶部,将其命名为reset,并将其命名为reset方法。
在这里,我们将描述按下重置按钮时的处理。
我们在这里所做的是用一个随机数重新填充数字,然后清空textfield1字符串。接下来,让textfield2中的文本为数字。
另外,让程序识别所涉及号码的标签。
我将其命名为resultLabel。
接下来,在相关号码的标签上反映生成随机数的号码。
在问题中生成随机数后,将数字转换为字符串并将其作为字符反映在标签上。
resultLabel.text = [NSString stringWithFormat:@"%d",question];
此外,按复位键时,相关号码也会更新。
resultLabel.text = [NSString stringWithFormat:@"%d",question];
设置随机数的范围
在这里,我想为随机数设定一个范围。
更改viewDidLoad。
int question2 = 5.0 + arc4random() % 6; //5から10までの乱数を取得 question = question2;
然后数字也指定范围。
int number2 = rand()%3 + 1; //1から3までの乱数を取得 number = number2;
以相同的方式更改重置按钮部分。
int question2 = 5.0 + arc4random() % 6; //5から10までの乱数を取得 question = question2;

int number2 = rand()%3 + 1; //1から3までの乱数を取得 number = number2;
最后,准备一个盒子来放入数字以进行正确性判断。
int result;
在答案部分中编写如下。
result = number + [textField1.text intValue]; if (result == question) { resultLabel.text = @"正解!"; }else{ resultLabel.text = @"間違い!"; }
首先,添加textfield2中使用的数字和textfield1中输入的字符串,将其转换为数字并将其放入结果中。
如果结果数与问题数(即问题的值)相同,
resultlabel的文本正确,否则不正确。
让我们来看看模拟器
然后左上▶单击按钮启动模拟器并进行检查。
我会尝试错的。
我正在尝试查看2 + 2 = 8。
如果点击答案匹配按钮,您将犯错!被审判。
接下来,让我们检查3 + 2 = 5。
它显示为正确。
最后
它怎么样?
这样,除了介绍之外,还可以通过将其写入Podfile轻松导入键盘等,并且开发人员可以专注于逻辑部分。
接下来,我将添加一个程序,以便在按下键盘时会发出声音。另外,我想设置背景图片,使其成为一个教育应用程序,它将使孩子们开心。下次我们期待。