《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.团队选题:餐厅到店点餐系统 ...
随机推荐
- canvas 学习笔记
1.利用上下文对象进行绘制画笔 var canvas=canvas.getContext('2d') 2.绘制路径 canvas.rect(30,30,300,300) 3.填充 canvas.fil ...
- Activity 的窗口去头的方式
1\窗口去头的第一种方式 public class SplashActivity extends Activity { @Override protected void onCreate(Bundle ...
- 爬B站并保存成csv文件。提供数据
"""b站排行榜爬虫(scrapy)https://www.bilibili.com/ranking#!/all/0/0/7/爬取编号,标题,url,综合评分,播放量,评 ...
- Linux 第十节( APACHE )
Apache 基金会,软件 http 协议 httpd 软件包 vim /etc/httpd/conf/httpd.conf //网站配置主文件 systemctl restart http ...
- 组件中的data为什么不是一个对象而是一个函数?
组件中的data为什么不是一个对象而是一个函数? 组件是可复用的vue实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用了多少次,组件中的data数据都应该是相互隔离,互不影响的,基于 ...
- Spring 的XML配置文件中提示的配置
1.看图:2.关于web.xml配置文件提示(1)下载(保存)http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd文件.(2)在eclipse中 Window ...
- AcWing 841. 字符串哈希 2022/5/25
include include using namespace std; typedef unsigned long long ULL; char str[N]; //存放字符串 int h[N], ...
- 【虚拟机】虚拟机安装win10
VMware-workstation 16 pro 点击查看代码 密钥: ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2UT6 ZF7 ...
- CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器
CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器.片上集成 2Mbps 低功耗蓝牙 BLE 通讯模块.2 个全速 USB 主机和设备控制器及收发器.2 个 SPI.4 个串口.1 ...
- js 自定义可编辑table并获取输入值
1.js加载table,tabid为abc. jsp: <table id="abc"></table> js:var tr_tr = "&quo ...