caa-game/src/entities/sign.js

62 lines
1.3 KiB
JavaScript

var asdf = require("asdf-games");
// eslint-disable-next-line no-unused-vars
const { Texture, TileSprite, entity } = asdf;
const texture = new Texture(__dirname + "/../../res/images/tilemap.png");
const TextBox = require(__dirname + "/../helpers/textbox.js");
const Pointer = require("./pointer.js");
class Sign extends TileSprite {
constructor(pos, player, keys, level, text) {
super(texture, 32, 32);
this.pos = pos;
this.scale = { x: 1, y: 1 };
this.frame = { x : 2, y: 10 };
this.player = player;
this.level = level;
this.keys = keys;
this.pointer = false;
this.string = text;
this.hitBox = {
x: 1,
y: 1,
w: 28,
h: 32
};
}
update(dt) {
super.update(dt);
if (entity.hit(this, this.player)) {
if (!this.pointer) {
var pointer = new Pointer({
x: (this.pos.x + this.tileW / 2) - 8,
y: this.pos.y - 16
});
this.level.entities.add(pointer);
this.pointer = pointer;
}
this.pointer.anims.play("white");
if (this.keys.action) {
const box = new TextBox(this.string);
this.level.textbox.add(box);
}
} else {
this.level.entities.remove(this.pointer);
this.pointer = false;
}
}
}
module.exports = Sign;