export default function dmgAreaComp(obj) {
let posData = [
[0, -64, 90],
[48, -48, -45],
[64, 0, 0],
[48, 48, 45],
[0, 64, 90],
[0, 64, 90],
[-48, 48, -45],
[-64, 0, 0],
[-64, 0, 0],
[-48, -48, 45],
[0, -64, 90],
]
return {
id: "dmgAreaComp",
require: ["pos"],
add() {
this.collisionIgnore = ["crownComp"]
obj.onStateEnter("cut", () => {
this.collisionIgnore = []
this.area.shape.width = 32
})
obj.onStateEnd("cut", () => {
this.collisionIgnore = ["crownComp"]
})
obj.onStateEnter("bite", () => {
this.collisionIgnore = []
this.area.shape.width = 16
})
obj.onStateEnd("bite", () => {
this.collisionIgnore = ["crownComp"]
})
this.onCollide("crownComp", (crown) => {
if (crown.hasScissors) obj.scissors += 1
destroy(crown)
})
},
update() {
let _pos = posData[obj.currentPart(obj.flipX)]
this.pos = obj.pos.add(_pos[0], _pos[1])
this.angle = _pos[2]
// debug.log(obj.currentPart(obj.flipX))
},
}
}На этом моменте я и закончил делать игру в предыдущий раз, переписанная игра стала гораздо лучше и я узнал много нового пока переписывал. Особенно полезными были знания о массивах в js и их методах some forEach и every.