《M8围棋谱》自定义皮肤设计指南
版本:1.0
作者:liigo,2009年10月,于大连。
http://blog.csdn.net/liigo
还在开发过程中,目前功能不全,但基本功能可用。其基本功能有:打开并解析SGF棋谱,单步向前向后,落子音效,自动提子,显示棋局信息和解说,支持自定义皮肤。
《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 上的指南针软件 有多种指示方向的方法。仍有许多要完善的地方。后续版本待续
2. **棋谱解析**:读取M8围棋谱格式的对局记录,这可能涉及到解析特定的文件格式,提取每一步棋的位置和顺序。 3. **用户界面**:设计一个直观的图形用户界面(GUI),允许用户浏览和交互棋谱。这可能包括显示棋盘...
《M8点讯输入法vista皮肤:个性化与体验优化》 M8点讯输入法是一款专为M8智能手机设计的输入法,以其高效、便捷的输入体验深受用户喜爱。这款“vista皮肤”则是针对M8点讯输入法进行的一次视觉升级,旨在为用户提供...
【魅族M8 SDK入门教程】是一篇针对初学者的指南,旨在帮助新手熟悉魅族M8设备的软件开发流程。教程分为多个部分,本文主要关注基础知识和开发环境的搭建。 1. **开发环境搭建**: - **VS2005/VS2008**:魅族M8 SDK...
### neo-m8硬件设计手册知识点概述 #### 一、NEO-M8模块简介 NEO-M8系列模块是由u-blox公司推出的高性能、成本效益高的GNSS(全球导航卫星系统)接收器模块,该模块集成了u-blox M8 GNSS引擎,能够同时接收GPS、...
ublox NEO-8Q和NEO-M8系列模块在文档中有详细的产品编号和版本信息,如NEO-M8N、NEO-M8M、NEO-M8Q、NEO-M8T、NEO-8Q等,以及它们的ROM/FLASH版本信息,例如NEO-M8N-0-10FLASHFWSPG3.01。此外,文档还提供了产品变更...
总之,NEO-M8的硬件集成手册是一份全面的技术指南,旨在帮助设计人员有效地将NEO-M8模块集成到各种硬件设备中,同时也为他们提供了对模块性能和技术规格的深入理解。通过使用NEO-M8模块,开发者可以创建出具有高精度...
为了方便大家开发M8应用程序,省掉建立项目的繁琐步骤,本人应用Visual C++的自定义向导(CustomWizard)规范编写了一套VisualC++魅族M8应用程序开发向导,使用这套向导创建M8开发项目可以省掉 SDK里要求的手动步骤,...
在提供的压缩包文件“M8v7数控电源.lay6”中,我们可以推测这可能是M8v7数控电源的电路布局文件或者设计图纸。lay6通常表示第六层的电路布局,这对于分析电源的硬件结构、理解电路设计和调试故障至关重要。 总的来...
【描述】中的“学习在M8中开发程序的例子”意味着这个源代码包包含了编写和调试M8设备应用的教程或实践指南。"快速入门"则表明这是一个适合初学者的资源,它可能涵盖了基础的编程概念,环境配置,以及特定于M8平台的...
制作任意的M8官方固件+Android的双启动固件教程 本教程旨在指导用户制作任意的M8官方固件+Android的双启动固件,从而实现M8手机的双启动功能。在本教程中,我们将使用Mpack、M8TinyLoader.exe、zImage、xip.bin...
"Holybro M8N GPS 快速入门指南" 本文将详细介绍 Holybro M8N GPS 模块的特点、技术参数和连接方式,以便读者快速了解和使用该模块。 M8N GPS 模块概述 Holybro M8N GPS 模块是一款高性能的 GPS 模块,采用 U-...
u-blox 8 / M8系列支持多种产品类别,如CAM-M8C、CAM-M8Q、EVA-M8M、EVA-M8Q、MAX-M8C和MAX-M8Q,它们的固件版本为3.01,属于“标准精度GNSS”类别。这些产品适用于需要稳定定位但不需要极高精度的应用场景。 文档...
4. "C94-M8P-AppBoard_UserGuide_(UBX-15031066).pdf" - 应用板用户指南可能涵盖了M8P模块在实际硬件平台上的使用方法,包括连接、初始化、软件开发等方面。 5. "u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_...
标题中的“HTC Desire626/816,M8S/M8/E8 Recovery打包合集”指的是一份包含针对HTC特定型号手机(Desire 626、Desire 816、M8S、M8以及E8)的Recovery系统的集合。在Android操作系统中,Recovery模式是一种特殊的...
初中英语外研版七年级下册高效课堂资料M8U2教学设计新.doc
2. **集成手册**:集成手册详细阐述了如何将NEO-M8模块无缝接入到用户的产品设计中,可能包括电路设计指导、抗干扰措施、模块与主机通信协议的解释等。这对于硬件工程师和嵌入式系统开发者来说是必不可少的。 3. **...
本压缩包包含的重要资料为“MAX-M8-FW3”的数据手册和硬件设计资料,这将帮助初学者深入了解MAX-M8芯片的工作原理、接口规范以及如何进行硬件集成。 首先,数据手册是理解任何电子元器件的基础,对于MAX-M8C GPS...
魅族M8,这款在中国智能手机发展史上具有里程碑意义的设备,自2009年发布以来,就以其独特的设计和出色的用户体验赢得了众多用户的喜爱。作为国内第一代真正意义上的智能手机,魅族M8在当时可谓引领了潮流,它的出现...
经过本人修改后的M8模拟器皮肤(缩小版),修改后的图片尺寸为554x861,用于在屏幕分辨率纵向高于880的电脑上使用(在1024x768分辨率下还是显示不完整)。压缩包中有使用说明。具体的修改方式可参见:...