12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { GameLogic } from "./GameLogic";
- const {ccclass, property} = cc._decorator;
- @ccclass
- export default class MoveDest extends GameLogic {
- private _speed: number = 100;
- public get speed(): number {
- return this._speed;
- }
- public set speed(value: number) {
- this._speed = value;
- }
- private _destination: cc.Vec2 = cc.v2(0, 0);
- public get destination(): cc.Vec2 {
- return this._destination;
- }
- public set destination(value: cc.Vec2) {
- this._destination = value;
- }
- gameUpdate(dt: number): void {
- let offset = this.destination.sub(this.node.getPosition());
- if(offset.mag() <= this.speed * dt) {
- this.node.setPosition(this.destination);
- }
- else{
- let dirction = offset.normalize();
- this.node.x += this.speed * dt * dirction.x;
- this.node.y += this.speed * dt * dirction.y;
- }
- }
- isDone(): boolean {
- return this.node.x == this._destination.x && this.node.y == this._destination.y;
- }
- }
|