当前位置: 首页 > news >正文

HarmonyOS 小游戏《对战五子棋》开发第24篇 - 颜色资源设置

好的配色让游戏"有质感"——五子棋的色彩设计

截图如下:

代码如下:

颜色体系总览

本项目的颜色分为三层:

1. Canvas绘制颜色(ChessBoardView内部)

constBOARD_BG_COLOR:string='#D4A868';// 棋盘木色constLINE_COLOR:string='#5C4033';// 网格线深棕constSTAR_COLOR:string='#3B2F2F';// 星位黑色constLAST_MOVE_COLOR:string='#E63946';// 最后一手红色

2. 资源文件颜色(color.json)

{"color":[{"name":"start_window_background","value":"#F5F5DC"},{"name":"board_color","value":"#D4A868"},{"name":"line_color","value":"#3B2F2F"},{"name":"black_piece","value":"#1A1A1A"},{"name":"white_piece","value":"#FFFFFF"}]}

3. 页面内联颜色(硬编码在build方法中)

.backgroundColor('#F5F0E8')// 页面背景.fontColor('#333333')// 主文字.fontColor('#999999')// 次要文字.backgroundColor('#4A90D9')// 蓝色按钮.backgroundColor('#E8913C')// 橙色按钮

色彩设计理念

棋盘配色:经典木色

背景:#D4A868(浅木色/赭石色) 线条:#5C4033(深棕色)

模拟传统木质棋盘的视觉效果,给人温暖、经典的感觉。

页面配色:暖色调

页面背景:#F5F0E8(米白色) 卡片背景:#FFFFFF(纯白) 文字主色:#333333(深灰) 文字次色:#999999(浅灰)

功能色

颜色色值用途
蓝色#4A90D9双人对战、主要按钮
橙色#E8913C人机闯关、AI相关
红色#E63946最后一手标记、失败提示
绿色#52C41A胜利提示
黄色#FA8C16AI思考中、解锁提示

棋子颜色

黑棋渐变

#666666(高光)→ #2A2A2A(中间)→ #111111(边缘)

不是纯黑,而是从深灰到近黑的渐变,模拟真实棋子的立体感。

白棋渐变

#FFFFFF(高光)→ #F0F0F0(中间)→ #C8C8C8(边缘)

不是纯白,而是从纯白到浅灰的渐变,让白棋有质感而非平面。

深色模式适配

// base/element/color.json{"name":"start_window_background","value":"#F5F5DC"}// dark/element/color.json{"name":"start_window_background","value":"#333333"}

系统切换到深色模式时,启动窗口背景自动从米白色变为深灰色。

注意:本项目目前只适配了启动窗口背景的深色模式。棋盘和页面的颜色仍使用内联硬编码值,未完全适配深色模式。这是一个可以改进的方向。

颜色使用规范

透明度表示

.fontColor('#FFFFFFCC')// 白色,80%不透明度.backgroundColor('#00000066')// 黑色,40%不透明度

8位十六进制颜色:前6位RGB,后2位Alpha透明度。

关卡颜色编码

privatelevels:LevelConfig[]=[{color:'#52C41A',...},// 简单:绿色(安全){color:'#FA8C16',...},// 普通:橙色(注意){color:'#F5222D',...},// 困难:红色(危险)];

用颜色传达难度等级——绿→橙→红是通用的"安全→危险"色彩语言。

当前设计的不足与改进

不足1:硬编码颜色过多

// 当前:颜色散落在各处.fontColor('#333333').backgroundColor('#4A90D9')// 改进:统一到资源文件.fontColor($r('app.color.text_primary')).backgroundColor($r('app.color.button_primary'))

不足2:棋盘颜色未适配深色模式

// 当前:Canvas内联颜色不受深色模式影响constBOARD_BG_COLOR:string='#D4A868';// 改进:根据系统主题选择不同配色constboardColor=isDarkMode?'#3B2F2F':'#D4A868';

不足3:缺少颜色常量文件

建议创建Colors.ets统一管理:

exportconstCOLORS={PRIMARY:'#4A90D9',SECONDARY:'#E8913C',DANGER:'#E63946',SUCCESS:'#52C41A',TEXT_PRIMARY:'#333333',TEXT_SECONDARY:'#999999',BG_PAGE:'#F5F0E8',BG_CARD:'#FFFFFF',};

总结

色彩设计是游戏视觉品质的基础:

  1. 经典木色棋盘:模拟传统棋盘质感
  2. 渐变棋子:径向渐变增加立体感
  3. 功能色编码:蓝/橙/红/绿传达不同语义
  4. 透明度:8位Hex控制不透明度
  5. 深色模式:资源限定实现自动切换

改进方向是统一颜色管理、完善深色模式适配。

http://www.jsqmd.com/news/1157770/

相关文章:

  • 让 feature-dev 与 planning-with-files 打出组合拳
  • 高维数据几何可视化方法综述(学习笔记)
  • 2026成都定制游旅行社行业实测排行名录 - 互联网科技品牌测评
  • 鸽姆智库(GG3M Think Tank) 贾子理论大厦(KTS)研究中心关于立场与方法论原则官方声明
  • 万国回收价格查询与靠谱回收平台实测排行(2026年7月最新数据) - 万国中国官方服务中心
  • 成都劳力士回收价格查询及各大平台实测排行(2026年7月最新数据) - 收的高名表回收平台
  • 虚幻引擎PicoVR开发:PICO XR Plugin与OpenXR Plugin深度对比与选型指南
  • 2026年7月最新深圳帝舵官方售后客服电话及服务网点地址查询 - 帝舵中国官方服务中心
  • 2026年河北齿轮油厂家综合评估与选择参考 - 品牌鉴赏官2026
  • 维度建模实战:电商数仓 6 步构建星型模型,产出 10+ 核心事实/维度表
  • C语言 atoi 函数深度解析:5个关键行为与 strtol 替代方案
  • 164、ATSS 自适应训练样本选择替换 TAL:基于统计 IoU 均值加标准差设动态阈值
  • 厦门宝珀回收价格查询与各大回收平台实测排行(2026年7月最新) - 嘉价奢侈品回收平台
  • 2026年中原区老车翻新贴膜:专业门店选择与威固官方旗舰店价值解析 - 品牌鉴赏官2026
  • SpringBoot Actuator安全漏洞与Linux提权实战:从Web渗透到Root权限获取
  • 免费开源视频下载神器:5分钟掌握VideoDownloadHelper终极使用指南
  • macOS Catalina下Jupyter Notebook配置全指南
  • 代理模式和适配器模式区别
  • 北京欧米茄回收价格查询与靠谱回收平台实测排行(2026年7月最新) - 天价名表回收平台
  • 宝玑中国官方售后服务中心|服务电话及详细网点地址权威信息通告(2026年7月最新) - 亨得利官方服务中心
  • 苏州百达翡丽回收价格查询及靠谱回收平台实测排行(2026年7月最新数据) - 诚收名表回收平台
  • Java Scanner 类精讲:经典坑拆解
  • DyberPet 与 VPet 对比评测:2款开源桌宠框架在功能、性能与生态上的差异
  • 欧米茄进水修复的专业售后维修处理服务权威公示(2026年7月最新) - 欧米茄服务中心
  • 2026年7月最新苏州萧邦官方售后热线及客户服务网点地址 - 萧邦中国官方服务中心
  • PIC18LF26K40驱动EPT-14A4005P蜂鸣器的低功耗警报方案
  • Melitz (2003) 异质性企业模型:从 20 个假设到 3 类企业决策的完整推演
  • 你想不想用一套系统方法,把复杂的医学数据变成清晰结论?
  • 2026年金堂专业实木楼梯厂商推荐:品质与设计的双重保障 - 品牌鉴赏官2026
  • 2026年长春刑事律师避坑指南:5位靠谱专业推荐 - 本地品牌推荐