上一节我们学习了如何通过键盘的指令来控制精灵,那么这节的内容应该就好理解多了,因为鼠标指令和键盘指令有很多相似之处,而且没有MFC编程中难以理解的句柄概念。
那我们还是按照交互的四个模块分别讨论:
信号约定:设置鼠标点击区域;
信号监测:获得当前鼠标点击状态(左键or右键,按下还是弹起,点击位置);
信号输入;信号响应。
为了帮助大家更好地理解精灵类,这回做得稍微复杂一点,实现真正地按钮效果:鼠标按下时按钮缩小,松开时按钮变大,同时触发一个事件,如下图:
大家快拿起键盘跟我来
1.创建精灵——绘图的艺术
首先我们找张作为按钮的图,一般网上找到的图都是过大的,并且没有圆形的图(用方形做按钮太丑了吧),所以需要用PS修建一下,不会的自学,像素一般设在50 x 50-150x150为佳,我下面用到的是一个50x50的位图。
因为要精确知道精灵所在位置的像素,来给鼠标设置点击范围,所以这回创建精灵就要有规划而不能盲目了。
/*:
*
* @plugindesc 鼠标控制精灵演示插件
* @
* @author 进入盛夏之门
*
* @param uiPath
* @desc 按钮位图的存放路径
* @default img/pictures
*
*/
//常规工作——设置命名空间
//当需要管理多个命名空间时,使用作者名缩写+子空间名更加规范
var JRSXZM = JRSXZM || {
};
JRSXZM.MouseControl = {
};
JRSXZM.MouseControl.parameters = PluginManager.parameters('MouseControl');
//以上为常规的工作,可无视
//=======================
//用复制式重写定义一个简单的精灵类
//我们对系统提供的精灵类进行复制,创建一个"myButtonSprites"
function myButtonSprites() {
this.initialize.apply(this, arguments);
}
myButtonSprites.prototype = Object.create(Sprite.prototype);
myButtonSprites.prototype.constructor = myButtonSprites;
myButtonSprites.prototype.initialize = function () {
Sprite.prototype.initialize.call(this);
this.setFrame(0, 0, 100, 100);
this.createAll(); // 默认一开始就创建精灵
};
//写构造精灵的函数<