《CSOL大灾变》Mobile开发进度记录——武器购买界面设计
又到了休息日,有点时间继续这个移植游戏的开发。这次主要是关于武器系统模块的开发记录,关于CS以及CSOL的武器系统,它的购买菜单页面虽然谈不上复杂,但是也包含很多GUI元素,下面是CSOL其中的一个武器购买界面展示:

而玩过生化模式或大灾变的玩家都知道,在现在的生化模式和大灾变中的购买菜单跟上面列出的团队竞技模式的购买菜单不太一样,如下:

这是生化模式中的,虽然大体差不多。但是还是有细微不同之处,当然,我偷懒了,不想搞那么复杂的,所以,打开GUI设计器,整了个差不多的布局页面,如下:

我觉得对于移植到移动端上,这个购买菜单差不多就这样吧。左上角是一个ListBox,适配器需要在代码中实现,所以在GUI设计器只能只是一个布局区域占位。接下来更改ListBox的背景框样式(改为透明),注意,直接在GUI设计器修改ListBox的backGroundColor或backGroundImage是没用的,因为这修改的是ListBox的背景,而上面的灰色背景框是ListBox中的Panel元素,找到默认的ListBox控件xml,如下:

在这里可以很清楚的看到,panel的样式Id为#scrollpanel,修改方案有两种,一种是自定义一个ListBox控件(复制这里的代码,然后粘贴到一个自定义Control控件中,然后添加一个新样式,将panel的样式设置为我们的样式),另一个种就是覆盖Id为#scrollpanel的样式,这样做可以减少一些工作,但是这样么一来整个页面中其他使用了#scrollpanel样式的组件也会被替换为我们的样式,不过对于这个页面而言,只有ListBox中的panel使用了这个样式,所以对于这个页面无影响。
从controlDefinition中的style="nifty-listbox"表面,panel使用的#scrollpanel样式的全程id为nifty-listbox#scrollpanel。那么id为nifty-listbox样式放在哪个文件呢?答案是放在nifty默认black样式包中listbox包下的nifty-listbox-style.xml中。内容如下:

所以我们需要重载的样式是id为nifty-listbox#scrollpanel的样式,新增一个AlphaListBoxPanelStyle.xml,添加如下代码:

然后在GUI页面引入我们的style,注意,需要按顺序引入,先引入默认的,再引入我们自定义的,这样后面引入的就可以重载id重复的样式,如下:

最后写个测试程序,运行查看,效果如下:

可以看到,ListBox的默认背景框样式已经变成透明的了,但是你会发现按钮的文字没有显示出来,原因是我们使用了中文字体,在GUI设计器中可以正常显示,但是在加载游戏中时默认加载的字体样式不存在中文字符,所以无法显示中文。值得一提的是,SDK中提供了制作字体的功能,右键->新建GUI->字体文件即可,但是很遗憾,SDK自带的工具不足以创建中文字体,所以我们可以使用一个叫做“bmfont64.exe"的文件,然后可以按照这个教程去制作字体(https://blog.csdn.net/zhenyu5211314/article/details/85232936),需要注意bmfont64最好去官网下载最新的那个兼容64位win10的版本,其他版本均无法在win10 64位正常运行。
这里我们创建16大小和20大小的字体文件,然后引入到GUI布局器中(具体怎么引入,查看我的另一篇教程)。最后运行测试程序,可以看到:

接下来,实现weaponListBox的自定义Item和适配器,按照CSOL的武器选择清单,Item是一个水平布局,三个元素,最左边的是一个img,中间是一个Label,右边是一个img,如下:

关于如何制作自定ListBox Item或自定义Item参考我的另一篇文章,关于如何动态调整Item请查看我的另一篇文章(还没写呢哈哈)。那么,我们的自定义Item的样式,控件xml和适配器分别如下:



最后,初始化数据查看下效果,如下:

看着有模有样了。
测试下在游戏中的效果,如下:

移动端效果:

差不多就这样,接下来就是完成武器系统模块的代码逻辑了。
《CSOL大灾变》Mobile开发进度记录——武器购买界面设计的更多相关文章
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化)
Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...
- Android开发1:基本UI界面设计——布局和组件
前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望 ...
- jQuery mobile 开发问题记录
一.动态加载页面问题 1.存在这样一个页面布局: main.html 为主界面A,B为该页面中的三个page,其中A为splitview左部分页面,B为右半部页面 a1.html 为一个独立的页面 a ...
- [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)
Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...
- Arduino单片机使用和开发问题记录(转)
源:Arduino单片机使用和开发问题记录 1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上 ...
- 快速开发平台分享-UCML快速开发七种武器
传统的快速开发平台强调的是组件重用.构件重用,主要解决功能重用层面,一般提供了软件开发最常用的功能:表单设计.BPM(业务流程管理).报表.组织机构及权限等功能.但只有功能重用,没有过程重用,要么只能 ...
- Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】
2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...
- 团队高效率协作开发的秘密武器-APIDOC
团队高效率协作开发的秘密武器 1.前言 在团队协作开发中,不知道各位有没有遇到这样的问题: l 新人接手了项目代码,因没有项目文档,只能靠追踪路由,寻读代码分析业务逻辑 l 前端同学写好了页面,苦等后 ...
- iOS开发之记录用户登录状态
iOS开发之记录用户登录状态 我们知道:CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登陆状态.例如微信 ...
- [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)
Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...
随机推荐
- nacos启动失败
报错如下: 通过第二个圈可以看出,没有发现9848端口,才想起来自己Spring Cloud Alibaba依赖对应的nacos版本是2.0.4,而启动的nacos服务却是1.x版本,才导致这个报错. ...
- C# RSA加密解密 签名实现
class RSACryptoItem { public RSACryptoServiceProvider Provider; public List<byte> PubKeyBytes; ...
- 【GENERAL FRAMEWORK】总框架——持续更新
引: 鉴于目前挖的坑较多,未防止某些即将长期更新的博文出现烂尾,特设此框架 1.蓝桥杯(完结) 1.[蓝桥杯单片机组]LED.蜂鸣器与继电器--138-573的外设操作 ...
- TypeScript 学习之路
一.下载与安装 二.变量与数据类型 三.函数 四.类
- NSA对下一代新技术的评估“网络透视”2010
时间线回到2010年,那时候做渗透测试流行找目标还是通过Google hack,Google dork去寻找目标比如inurl:asp?id= 寻找asp网站可利用的注入点,在厉害点一键爬取域名在配合 ...
- Flutter tab切换保持页面状态的两种方法
当通过底部tabBar将页面在"首页"和"分类"之间进行切换的时候,每一次进入页面的时候该页面的数据都会重新加载.那么如何让页面保持原来的状态,而不是每次都要重 ...
- JAVA集合框架特征介绍
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...
- mqtt抓包
mqtt消息抓包 账号.密码.imappclientId 或者imwebclientId校验成功后跟imserver连接成功 部分交互:先获取到uid,再根据uid拿到其他用户信息,且部分信息通过 ...
- 【服务器数据恢复】HP EVA存储多块硬盘离线的数据恢复案例
服务器故障&检测&分析:某品牌EVA存储设备中的RAID5磁盘有两块硬盘掉线,lun丢失.硬件工程师对故障服务器进行物理故障检测,发现掉线硬盘能够正常读取,无物理故障,也没有发现坏道. ...
- windows下BAT实现守护进程
通过bat守护特定exe @echo off :start choice /t 5 /d y /n >nul tasklist|find /i "程序名称.exe" if E ...