创建一个空节点canvas 把gameCtl脚本拖到上面

添加关联我们的小车。

import { _decorator, Component, Node, systemEvent, SystemEventType, EventTouch, Touch, math, Vec3 } from 'cc';
import { MapManager } from './MapManager';
import { Player } from './Player';
const { ccclass, property } = _decorator;
@ccclass('GameCtl')
export class GameCtl extends Component {
@property({
type: MapManager,
})
mapManager: MapManager | null = null;
@property({
type: Player,
})
player: Player = null!;
touch_x = 0;
local_x = 0;
currentZ = 0;
@property
speed = 0;
private _state = 0; //0左 1右
public start() {
//this.mapManager.initMap("Map101");
systemEvent.on(SystemEventType.TOUCH_START, this._touchStart, this);
systemEvent.on(SystemEventType.TOUCH_END, this._touchEnd, this);
}
public update(dt: number) {
this.currentZ += this.speed;
if (this._state == 0) {
//0左
this.local_x = this.local_x + 0.58;
} else if (this._state == 1) {
//1右
this.local_x =this.local_x - 0.58;
}else if(this._state==-1){
}
this._state = -1;
let pos = this.player.node.position.clone();
//pos.z = this.currentZ;
pos.x = math.lerp(pos.x, this.local_x,1);
pos.x = this.local_x;
this.player.node.setPosition(pos);
this.player.node.parent.setPosition(new Vec3(0,0,this.currentZ));
}
private _touchStart(touch: Touch, event: EventTouch) {
this.touch_x = touch.getLocation().x;
}
private _touchEnd(touch: Touch, event: EventTouch) {
let end_x = touch.getLocation().x;
let dis = this.touch_x - end_x;
//灵敏度30
if (dis > 30) {
this._state =0;
console.log("左移");
} else if (dis < -30) {
this._state =1;
console.log("右移");
}
}
}最后一步是做 镜头跟随小车。
创建一个空节点player 把小车和镜头全放里面。、

我们左右移动是小车在动
向前移动是镜头 向前。
站长微信:xiaomao0055
站长QQ:14496453