Home Reference Source

src/sprites/sprite.js

/**
 * Base class of Drone or other Game-Sprite
 */
export class Sprite {
    constructor(opts) {
        // oye !! hack the Class() with no args.
        let _opts = opts || {};
        this.id = genId();
        this.speed = _opts.speed || 1;
        this.direction = _opts.direction || 0;
        this.name = _opts.name || randomName();
        this.lon = _opts.lon || 120;
        this.lat = _opts.lat || 30;
        this.iconUrl = _opts.icon;
        this.icon = null;
        this._init();
    }

    _init () {
        let img = new Image();
        img.src = this.iconUrl;
        img.onload = () => {
            this.icon = img;
        }
    }

    /**
     * to be overwrite.
     */
    accelerate() {
        
    }
    
    turnLeft () {
        if (this) {
            this.direction -= 2;
        }
    }
        
    turnRight () {
        this.direction += 2;
    }

    brake () {
        if (this.speed > 0) {
            this.speed -= 1;
        }
    }

}

export function genId () {
    return (Math.random()*1000000).toString(16);
}

export function randomName () {
    let randomNum = Math.random() * 10000;
    return "Player ".concat(randomNum.toFixed(0));
}