写好Clickable
类之后便可以开始着手写Window了,不过在这之前还要做一些准备
Window 皮肤绘制
如同RM原生的Window皮肤,基本是一个正方形的格子,绘制的时候是把其上下左右边缘分别绘制,首先四个角按原样单独绘制,四条边进行长度缩放后绘制,中间填充双方向缩放绘制,这样可以将一个正方形在不失真的情况下绘成任意大小的矩形(上面的缩放也可以用 Tilemap 排列,取决于中间区域是不是纯色);为了方便起见为Bitmap
单独写这样一个绘制皮肤的方法,难度没有,就是比较麻烦。
1 | /** |
另外一个准备,就是写一个Paddings
类,方便一点,不然每次都要写四个看起来比较乱,比较简单就不具体说明了:
1 | class Paddings { |
Window
准备好之后可以开始写 Window 了,首先还是先思考一下需求。 Window 由标题、背景、内容构成。(标题我后来放弃,没什么用,就不提了,不过加进去也简单)。背景就是窗口的背景板,背景上画皮肤;而内容是一个透明的空白图片,是写文字图片等内容的地方,覆盖在背景上面,在二者都用 Sprite
作为载体:
1 | class CustomWindow extends Clickable { //继承Clickable |
此外还窗口还要有一些绘制函数,用来更方便地绘制文字、图片,这个参考原生的 Window 抄过来就可以了,就不再详细说明。