Initial commit
This commit is contained in:
48
js/player/bullet.js
Normal file
48
js/player/bullet.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import Sprite from '../base/sprite';
|
||||
|
||||
const BULLET_IMG_SRC = 'images/bullet.png';
|
||||
const BULLET_WIDTH = 16;
|
||||
const BULLET_HEIGHT = 30;
|
||||
|
||||
export default class Bullet extends Sprite {
|
||||
constructor() {
|
||||
super(BULLET_IMG_SRC, BULLET_WIDTH, BULLET_HEIGHT);
|
||||
}
|
||||
|
||||
init(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.isActive = true;
|
||||
this.visible = true;
|
||||
}
|
||||
|
||||
setPos(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
// 每一帧更新子弹位置
|
||||
update() {
|
||||
if (GameGlobal.databus.isGameOver) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 子弹位置由外部控制(Player控制)
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this.isActive = false;
|
||||
// 子弹没有销毁动画,直接移除
|
||||
this.remove();
|
||||
}
|
||||
|
||||
remove() {
|
||||
this.isActive = false;
|
||||
this.visible = false;
|
||||
// 回收子弹对象
|
||||
GameGlobal.databus.removeBullets(this);
|
||||
// 注意:DataBus.removeBullets 内部调用 pool.recover('bullet', bullet)
|
||||
// 我们需要修改 DataBus 或者在这里手动回收
|
||||
// 由于 DataBus 是通用的,我们最好修改 DataBus 或者在 DataBus 中传入 key
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user