《M8围棋谱》自定义皮肤设计指南

版本:1.0
地址:http://docs.google.com/View?id=dhmvxcsd_3dxpmm6nz
作者:liigo,2009年10月,于大连。
http://blog.csdn.net/liigo

  《M8围棋谱》,专为魅族M8手机开发的围棋打谱软件。此软件是 Google Code 上的开源软件,项目主页为:http://code.google.com/p/m8weiqipu/。

  还在开发过程中,目前功能不全,但基本功能可用。其基本功能有:打开并解析SGF棋谱,单步向前向后,落子音效,自动提子,显示棋局信息和解说,支持自定义皮肤。

魅族M8手机官方论坛下载地址:http://bbs.meizu.com/thread-1250668-1-1.html
  《M8围棋谱》支持自定义皮肤。通过设计新的皮肤,可以自定义背景图片、棋盘、棋子(黑子/白子/当前子)、落子声音等。本设计指南针对0.8以上版本。

   每一款皮肤,都在软件运行目录中“skins”子目录内拥有一个独立子目录,其中包括一系列图片、声音和配置文件(skin.ini)。下文将详细介绍这些文件的作用和制作要求。

此软件是竖屏全屏显示的,屏幕顶部不显示信号栏。其运行界面,从上到下分为四个部分,依次是:棋局基本信息显示区(在屏幕最上方,大约50个像素高度),棋盘区域(大小由皮肤制作者决定,这是界面的核心区域),解说信息显示区(此区域大小取决于它上面和下面的区域),操作按钮栏(在屏幕最底部,固定高度65个像素)。另可参考本文最后的屏幕截图。
开始制作皮肤时,第一步应先准备一幅 480x720(宽x高)的背景图片(background.png),初步确定棋盘的大小和位置之后,窗口中的四个区域也就大致确定了。
棋盘是画在背景图片上的。确定棋盘的大小和位置是皮肤制作过程中相对比较复杂的一项工作,涉及到一些简单的数学运算。一般来说,我们都希望充分利用屏幕的宽度,尽量把棋盘画的大一些。在计算棋盘中相临两线的间隔时,记得要把线自身的宽度和边线左右两侧的空间(至少要留下半个棋子的宽度,以保证边线上的棋子完整显示)一并考虑进去哦。软件对棋盘位置的要求是:棋盘上方至少要保留大约50像素高度的空间(用于显示棋局基本信息,如对弈双方、赛事名称日期等,通常有两行文字);软件对棋盘大小的要求是:线与线之间必须是等宽的。除此之外,就没有其它的要求了。待一切确定并绘制完毕后,需在皮肤配置文件(skin.ini)中指定以下信息:几路棋盘(19? 13? 9?),棋盘左上角棋子的横坐标和纵坐标(屏幕或图片左上角为坐标原点(0,0)),相临两线之间的间隔(单位为像素),线的宽度(单位为像素)。下文将详细介绍具体的配置细节。
按下来要确定棋子的大小,其直径通常比棋盘相临两线的间隔略小。棋子的大小(横向宽度)也要写进配置文件中去。然后制作黑白两方的棋子图片(black.png,white.png)。棋子的形状通常是圆形的,颜色通常是黑白的,并且周边透明。当然你要设计成其它形状和颜色也无所谓,程序不予限制。如果棋子图片是半透明的,它下方的棋盘将显示出来。
然后在黑白棋子图片的基础上,制作“当前棋子”图片(black_new.png,white_new.png),程序要求它们与普通棋子图片等大。所谓“当前棋子”,是指最新下到棋盘上的那个棋子,通常需要做一些标记,以便打谱者更容易找到它。在程序中,“当前棋子”的图片是叠加在普通棋子图片上方显示的,即,它的正下方是普通棋子图片,如果“当前棋子”图片是部分透明的,下方的图片就会部分显示出来。制作图片时可根据这一特性打造特殊效果。
最后是制作“落子音效”声音文件(luozi.wav)了,即棋子敲击棋盘的声音。程序要求它必须是wav格式,建议简短清脆。
以上文件都制作完成后,把它们放到一个目录内(目录名称可随意,假设为smile),然后把此目录复制到《M8围棋谱》安装目录下的“skins”子目录内,最终的目录结构应该是:DiskProgramsM8WeiqiPuskinssmileskin.ini(这里假设软件安装在DiskProgramsM8WeiqiPu)。提供给别人时,对smile目录压缩打包即可。
  如果自己设计了多款皮肤,还可以细分子目录,如在 smiles 下分别放置 smile1, smile2 等,最终的目录结构应该是:DiskProgramsM8WeiqiPuskinssmilessmile1skin.ini, DiskProgramsM8WeiqiPuskinssmilessmile2skin.ini。
以下是一个皮肤需提供的各类文件详单(所有文件均采用固定文件名称):
文件名称 详细说明 是否必须提供
默认皮肤中的实例

(仅供参考)

skin.ini 皮肤配置文件。
INI格式的纯文本文件,要求必须是Unicode(UTF16-LE)编码。下文将对其内容作详细说明。
必须的 内容见下文
background.png 棋盘及其背景图片。宽度为480像素,高度为720像素。
棋盘应在图片的中间偏上位置,上边需留出大约50像素高度的区域用于显示棋局基本信息。
图片最下方65个像素高度会一直被屏幕底部的“操作按钮栏”遮盖,构图和制作图片时请考虑到这一点。
与此相关的一些数据(如棋盘左上棋子角坐标、相临两线间隔、线的宽度等)需写到配置文件中,详见下文。
必须的 图片见下文
black.png 黑方棋子图片。
要求宽高相同,其图片宽度应写入配置文件(skin.ini)中入。
必须的
white.png 白方棋子图片。
要求与黑方图片(black.png)尺寸相同。
必须的
black_new.png 黑方当前棋子图片,即新下到棋盘上的黑方棋子图片。
要求与黑白棋子图片(black.png, white.png)尺寸相同。
运行时此图片将显示在普通黑方棋子图片(black.png)正上方。
可以没有
white_new.pn 白方当前棋子图片,即新下到棋盘上的白方棋子图片。
其余参见black_new.png的说明。
可以没有
luozi.wav 落子声音文件,即棋子下到棋盘上时敲击棋盘的声音。
要求必须是wav格式,最好简短清脆。
可以没有
以下是皮肤配置文件(skin.ini)中的各配置项说明:
配置项 详细说明 默认皮肤中的值(仅供参考)
Name 本皮肤的名称,可随意。显示时两端的双引号将被去除。 "默认标准棋盘"
Description 本皮肤的说明信息,可随意。显示时两端的双引号将被去除。 "the default skin of Weiqipu"
BoardLineCount 指定本皮肤使用的棋盘为几路棋盘。其值可为 19、13、9等。 19
BoardLineInterval 棋盘上相临两线间间隔,单位为像素。 24
BoardLineWidth 棋盘上线的宽度,单位为像素。 1
BoardTopY 棋盘顶边纵坐标,单位为像素 46
BoardBottomY 棋盘底边纵坐标,单位为像素 530
StoneWidth 棋子的宽度,即棋子图片的宽度,单位为像素。(目前要求棋子图片宽高相同) 21
TopLeftStoneX 棋盘左上角棋子中心点的横坐标,单位为像素。以图片左上角为坐标原点(0,0)。 15
TopLeftStoneY 棋盘左上角棋子中心点的纵坐标,单位为像素。以图片左上角为坐标原点(0,0)。
此值应在65左右或更大,以便棋盘上方留出足够的区域显示棋局基本信息。
64
以下是默认皮肤的配置文件(skin.ini)内容,供参考:
[Settings]
Name="默认标准棋盘"
Description="the default skin of Weiqipu"
BoardLineCount=19
BoardLineInterval=24
BoardLineWidth=1
BoardTopY=46
BoardBottomY=530
StoneWidth=21
TopLeftStoneX=15
TopLeftStoneY=64
以下是默认皮肤的背景图片(background.png),供参考:

以下是使用了默认皮肤的程序运行界面截图:

《M8围棋谱》自定义皮肤设计指南相关推荐

  1. 安卓小程序 自定义下拉刷新_支付宝小程序设计设计指南

    本篇<设计指南>从7个维度分析: 导航(架构清晰,指引明确).界面(明辨主次,重点明确).流程(流程明确,避免打扰).引导(操作向导,降低成本).反馈(反馈及时,减少焦虑).容错(用户可控 ...

  2. Oculus VR设计指南

     Oculus VR 设计指南 本指南由字节跳动的四位同学共同翻译,西瓜视频的设计师们共同校对. 如果你对 XR 设计工作感兴趣,vivo 正在招聘 XR 方向的人机交互设计师,当然如果你有其他的任何 ...

  3. B端设计指南-表格设计的常见问题

    本文由作者 CE青年 于社区发布 在上一篇文章,我们讲到对于表格而言你所要具备的基础知识点,没有看过的同学建议先看完上篇再看下篇- 今天咱们落落地,因为表格十分重要,我也在群聊里进行了一次问卷调查,将 ...

  4. 苹果人机交互指南_苹果人机界面设计指南的10个见解

    苹果人机交互指南 重点 (Top highlight) I've been developing an IOS app for the past few months and have been co ...

  5. finclip设计指南与小程序设计指南

    FinClip = Finogeeks + Clips,是由凡泰极客团队开发,"Fin"是公司凡泰极客公司英文名称 Finogeeks 的缩写,Clip 则来自 Apple 公司在 ...

  6. android app底部菜单栏,材料设计指南·组件篇(一):AppBars: Bottom 底部栏

    写在前面的话:内容来自 Material IO ,目前不是从头到尾一一翻译,我自己用到哪部分内容就翻译哪部分.之后会逐步完善,当然你要想先看哪部分也可以留言提要求.不是直译,但不会影响原文内容. 材料 ...

  7. 非常实用: 2.4G天线设计指南(赛普拉斯工程师力作)

    转载来源:[射频百花潭]<非常实用: 2.4G天线设计指南(赛普拉斯工程师力作)> 本文章使用简单的术语介绍了天线的设计情况,并推荐了两款经过赛普拉斯测试的低成本PCB天线.这些PCB天线 ...

  8. 开源软件《M8围棋谱》v0.8.8 首次登陆魅族软件中心,免费发布,技术总结

    今日(2010/7/22),本人(liigo)开发的C/C++开源软件<M8围棋谱>v0.8.8 首次登陆魅族软件中心,免费发布.本文主要针对"如何满足魅族软件中心对软件的各项要 ...

  9. 苹果设备蓝牙接入设计指南

    本文介绍了针对硬件通过蓝牙传输来与苹果产品包括Mac,iPhone和iPod touch等交互的设计指南.为了能够与苹果产品兼容,现在和未来的设计当中,蓝牙计入都应该遵循本文中的规范.本文主要分为两个 ...

最新文章

  1. 后疫情时代,如何重构数字战斗力?
  2. 数据库笔记1:数据库基本语句
  3. 让AI学习如何玩游戏 OpenAI打造强化学习通用模型
  4. .Net+MySQL组合开发(二) 数据访问篇
  5. java mail outlook_已启用Outlook API邮件与邮箱用户
  6. 【Jmeter篇】如何利用Jmeter配置元件计数器、随机变量制造批量数据和变量参数化?
  7. c++ 三维数组 初始化_013 JAVA 多维数组及数组的拷贝、冒泡排序、二分法查找...
  8. 设计模式:单件模式(Singleton Pattern)
  9. 为什么学习前端的人越来越多?
  10. c语言中文件的读写函数
  11. Oracle 11gR2 RAC 常用维护操作 说明
  12. html中怎么给文字设置动画效果,文字效果怎么设置?
  13. tomcat9 性能调优
  14. svm手写数字识别python_SVM之Mnist手写数字识别
  15. windows系统安装wget指令
  16. 英文科技论文写作中常见的问题和技巧(自用整理)
  17. PhotoShop十大使用技巧总结
  18. LTM系统并联接入方式数据包交互分析
  19. 《黑客帝国》的宗教启示
  20. bzoj1724【Usaco2006 Nov】Fence Repair 切割木板

热门文章

  1. 通过mvn命令上传jar包到nexus
  2. 第九届蓝桥杯JavaA组(2018年)省赛真题解析
  3. Matlab 增加配色方案
  4. 步进电机编码器闭环程序,西门子200PLC和威纶通触摸屏实控制步进电机
  5. 【高级伪静态】IIS Rewrite 下载与配置
  6. 关于虚拟机搭建Hadoop的几个坑
  7. 清除挖矿病毒solr记录
  8. 哈希表题目:验证外星语词典
  9. 一款数据库合并工具的中文版更新
  10. 对三星彩色打印机鼓清零的感悟