(NO.00001)iOS游戏SpeedBoy Lite成形记(二十二)
2024-10-10 07:36:18
自己的游戏自己更需要多玩,这样才能首先发现不足的地方。所以本猫到现在已经忍一个地方很久了,就是弹出moneyLayer后每次都要输入数字才能关闭,这多少让人不爽。于是本篇我们就修正这个小小的不便。
首先在第一次弹出该窗口时我们随机设置一个合适的数字,如果是第二次弹出该窗口我们只是保持原先的值不便即可。
我们打开PopupLayer.m修改didLoadFromCCB方法:
-(void)didLoadFromCCB{
if (_moneyText) {
_moneyText.textField.keyboardType = UIKeyboardTypeNumberPad;
NSInteger money = [self autoMoney];
_moneyText.string = [NSString stringWithFormat:@"%d",money];
}
if (_recordsLabel) {
[self initRecordsLabel];
}
}
添加autoMoney方法:
-(NSInteger)autoMoney{
GameState *gameState = [GameState sharedInstance];
NSInteger money;
if (gameState.money == 0) {
money = gameState.totalMoney/10;
if (money == 0) {
money = 1;
}
}else
money = gameState.money;
return money;
}
这里的判断条件为如果gameState.money为0表示用户还未设置值,取总金额的1/10,最低值为1,否则返回上一次的值.因为每次比赛结束后matchRun会将该该值设为0,所以逻辑是正确的.
为了照顾一些疯狂的赌徒,考虑到他们的要输光的渴望,我们再添加一个他们大爱的功能:全压!
在SpriteBuilder中修改PopupMoneyLayer.ccb文件布局如下:
即添加一个按钮,然后设置回调方法为:allMoney.
我们回到Xcode中实现该方法:
-(void)allMoney{
GameState *gameState = [GameState sharedInstance];
gameState.money = gameState.totalMoney;
[self.gameScene removePopup];
}
好了,修改了这2个小问题后方便了许多,本猫不禁的又多玩了几把 ;)
最新文章
- 关于SilverLight
- 使用windows资源管理器的排序规则
- mysql与oracle的存储过程有什么区别?
- 【JQGRID DOCUMENTATION】.学习笔记.2.基本表格
- Leetcode#78 Subsets
- C++内存管理(超长,例子很详细,排版很好)
- Xcode 7 warnings: object file was built for newer iOS version than being linked
- 【转】聊聊HTTPS和SSL/TLS协议
- Redis 中的数据类型及基本操作
- Android动态换肤(三、安装主题apk方式)
- abaqus2016安装过程中出现error:unable to add abaqus command directory to PATH variable
- 『Python CoolBook』C扩展库_其四_结构体操作与Capsule
- input date 支持placeholder属性
- SeaJS入门教程系列之完整示例(三)
- mac下安装、配置redies
- js_字符转Unicode
- CentOS7下gitlab的搭建
- Linux学习笔记02—磁盘分区
- pip删除依赖、配置虚拟环境
- http学习笔记1