鼠标事件
//鼠标事件
this.node.on(cc.Node.EventType.MOUSE_DOWN, (e: cc.Event.EventMouse) => {
cc.log(e.getLocation() + "")
if (e.getButton() == cc.Event.EventMouse.BUTTON_LEFT) {
cc.log("鼠标左键")
}
})
键盘事件
//键盘事件
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, (e: cc.Event.EventKeyboard) => {
cc.log(e.keyCode + "")
if (e.keyCode == cc.macro.KEY.a) {
cc.log("点击a")
}
})
触摸事件
//触摸事件
this.node.on(cc.Node.EventType.TOUCH_START, (e: cc.Event.EventTouch) => {
cc.log("触摸" + e.getLocation())
})
自定义事件(消息通知)
- 发送通知(2种方式)
this.node.on(cc.Node.EventType.MOUSE_DOWN, () => {
cc.log("点击按钮,发送事件1")
cc.find("human").emit("msg")
})
this.node.on(cc.Node.EventType.MOUSE_DOWN, () => {
cc.log("点击按钮,发送事件2")
let event = new cc.Event.EventCustom("msg", true)
event.detail = {date: new Date(), text: "hello"}
cc.find("human").dispatchEvent(event)
}
)
- 接收方
//自定义事件,例如通知
this.node.on("msg", (e:cc.Event.EventCustom) => {
cc.log("自定义事件触发")
cc.log(e.detail.text)
})
Demo,控制精灵移动
isFocus: boolean = false
speed: number = 50
start() {
//鼠标(MOUSE_DOWN)、或手指拖拽人物移动
this.node.on(cc.Node.EventType.TOUCH_START, () => {
this.isFocus = true
})
this.node.on(cc.Node.EventType.TOUCH_END, () => {
this.isFocus = false
})
this.node.on(cc.Node.EventType.TOUCH_MOVE, (e: cc.Event.EventTouch) => {
if (this.isFocus) {
this.node.setPosition(e.getLocation())
}
})
//键盘控制人物移动
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, (e: cc.Event.EventKeyboard) => {
if (e.keyCode == cc.macro.KEY.up){
this.node.y += this.speed;
}else if (e.keyCode == cc.macro.KEY.down){
this.node.y -= this.speed;
}else if (e.keyCode == cc.macro.KEY.left){
this.node.x -= this.speed;
}else if (e.keyCode == cc.macro.KEY.right){
this.node.x += this.speed;
}
})
}
文章来源地址https://www.toymoban.com/news/detail-808831.html
文章来源:https://www.toymoban.com/news/detail-808831.html
到了这里,关于Cocos creator 的事件处理(鼠标事件、键盘事件、触摸事件、自定义事件、控制精灵移动Demo)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!