import { _decorator, CharacterController, CharacterControllerContact, Component, EventKeyboard, EventMouse, Input, input, KeyCode, Node, PhysicsSystem, v3, Vec3 } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('n5')
export class n5 extends Component {
z1:number = 0
start() {
input.on(Input.EventType.MOUSE_MOVE, this.onMouseMove, this)
input.on(Input.EventType.KEY_DOWN, this.onKeyDown, this)
input.on(Input.EventType.KEY_PRESSING, this.onKeyDown, this)
input.on(Input.EventType.KEY_UP, this.onKeyUp, this)
}
onMouseMove(event: EventMouse){
if (event.getButton() == 2) {
//获取本地坐标系下的旋转,用欧拉角表示
let fe1 = this.node.eulerAngles.x
let fe2 = this.node.eulerAngles.y
//鼠标在UI坐标系下的移动距离
let x1 = event.movementX * 0.5
let y1 = event.movementY * 0.5
//用欧拉角设置世界坐标系下的旋转
fe1 += -y1
fe2 += -x1
this.node.setRotationFromEuler(fe1, fe2, 0)
}
}
onKeyDown(event: EventKeyboard){
if (event.keyCode == KeyCode.KEY_W){
this.z1 = -0.01
}
}
onKeyUp(event: EventKeyboard){
if (event.keyCode == KeyCode.KEY_W){
this.z1 = 0
}
}
update(deltaTime: number) {
let b1 = this.node.worldPosition
this.node.parent.setWorldPosition(b1)
this.node.setPosition(0,0,0)
let h1 = new Vec3(0,0,0)
this.node.worldRotation.getEulerAngles(h1)
this.node.parent.setWorldRotationFromEuler(h1.x,h1.y,h1.z)
this.node.setRotationFromEuler(0,0,0)
let a1 = this.node.position
this.node.setPosition(a1.x,a1.y,a1.z+this.z1)
}
}