cocos create 3.X 控制角色左右上下移动
代码:
/** * 角色上下左右控制 * */ import { _decorator, Component, Node, Vec3, Input, EventKeyboard, KeyCode } from 'cc'; const { ccclass, property } = _decorator; @ccclass('Player') export class Player extends Component { xy: number = 5; up:boolean = false; down:boolean = false; left:boolean = false; right:boolean = false; pos:Vec3; start() { this.pos = this.node.getPosition(); console.log("start this.pos" + this.pos) let input:Input = new Input(); input.on(Input.EventType.KEY_DOWN, this.onKeyDown, this); input.on(Input.EventType.KEY_UP, this.onKeyUp, this); } update(deltaTime: number) { this.move() } move(){ if(this.up){ this.pos.y += this.xy; } if(this.down){ this.pos.y -= this.xy; } if(this.left){ this.pos.x -= this.xy; } if(this.right){ this.pos.x += this.xy; } // 触及边界,停止移动 // 增加判断 this.node.setPosition(this.pos); } onKeyDown(event: EventKeyboard){ console.log("onKeyDown event " + event.keyCode) console.log("onKeyDown event " + event.keyCode ) switch (event.keyCode) { case KeyCode.KEY_W: case KeyCode.ARROW_UP: this.up = true; break; case KeyCode.KEY_S: case KeyCode.ARROW_DOWN: this.down = true; break; case KeyCode.KEY_A: case KeyCode.ARROW_LEFT: this.left = true; break; case KeyCode.KEY_D: case KeyCode.ARROW_RIGHT: this.right = true; break; } } onKeyUp(event: EventKeyboard){ console.log("onKeyUp event " + event.keyCode) switch (event.keyCode) { case KeyCode.KEY_W: case KeyCode.ARROW_UP: this.up = false; break; case KeyCode.KEY_S: case KeyCode.ARROW_DOWN: this.down = false; break; case KeyCode.KEY_A: case KeyCode.ARROW_LEFT: this.left = false; break; case KeyCode.KEY_D: case KeyCode.ARROW_RIGHT: this.right = false; break; } } }
标签:
cocos create
, cocos
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2021-02-20 java springboot mybatis控制台打印sql方法