正在做一款传奇类游戏,需要将指针改换为小手 一类的图片 ,有没有合适的方法![]()
急需解决办法
希望知道的大佬帮忙解决一下 万分感谢!
我没弄过,但是猜想可以这么搞,注册鼠标移动事件,检测是否在屏幕中,弄一个节点跟随坐标,切换状态
http://docs.cocos.com/creator/api/zh/classes/Event.EventMouse.html
鼠标事件进入某些节点的时候,移动会停止 我的 sp节点就不会跟随移动了
我测试没问题,用整个屏幕来做鼠标响应
哥们 能把代码粘贴一下吗。学习学习
我是在canvas 挂载的脚本
private Touch_sp:cc.Sprite=null;//鼠标图标
onLoad () {
this.Touch_sp=cc.find(“TouchSp”,this.node).getComponent(cc.Sprite)
this.Touch_sp.node.zIndex=1000
cc.game.canvas.style.cursor=“pointer”
this.node.on(cc.Node.EventType.MOUSE_ENTER,this.DragStart,this)
this.node.on(cc.Node.EventType.MOUSE_MOVE,this.Draging,this)
}
private DragStart(event)
{
let pos=this.node.convertToNodeSpaceAR(event.getLocation());
this.Touch_sp.node.setPosition(pos)
}
private Draging(event)
{
var delta = event.getDelta();
this.Touch_sp.node.x+=delta.x
this.Touch_sp.node.y+=delta.y
}
start () {
}
const {ccclass, property} = cc._decorator;
cc.debug.setDisplayStats(false);
@ccclass
export default class Helloworld extends cc.Component {
@property(cc.Label)
label: cc.Label = null;
@property(cc.Node)
mousenode: cc.Node = null;
@property
text: string = 'hello';
onLoad(){
cc.game.canvas.style.cursor = "none";
this.node.on(cc.Node.EventType.MOUSE_MOVE,(move:cc.Touch)=>{
console.log(move.getLocation());
this.mousenode.setPosition(this.node.convertToNodeSpaceAR(move.getLocation()));
})
}
start () {
// init logic
this.label.string = this.text;
}
}
完美,哈哈哈
大佬知道为什么 鼠标移动到其他的 节点之后 会 失去坐标偏移吗
我怀疑是触摸吞噬了,你把的层级设置为最上面。我是设置在最上面实现的。
zIndex 设置要很大吗? 还是 怎么设置
很大就行了,还有就是触摸的穿透,让它能够点击后面的按钮。
怀疑你的层级没有细分,或者应该为游戏分组,

node的 groupdefault
你这个适合拖动,如果始终要让鼠标图片跟随,应该直接赋予鼠标位置给节点
触摸的穿透指的是什么 。 我给一些界面加了一个 触摸检测 跟随的节点 ,滑到这里就失去触摸事件了 
你框的地方绑定有按钮或者别的什么吗?鼠标的节点全局最高的话不应该会失效。
嗯按你的代码改了

