12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { BoxCollider2D, Collider2D, Component, Contact2DType, IPhysics2DContact, Node, Prefab, UITransform, Vec2, _decorator, v2, v3 } from 'cc';
- import { GameManager } from '../../Manager/GameManager';
- import { Global } from '../../Common/Global';
- import { AudioManage } from '../../Manager/AudioManage';
- const { ccclass, property } = _decorator;
- @ccclass('Zidan')
- export class Zidan extends Component {
- private _moveDirection: Vec2 | undefined;
- private collider;
- onLoad() {
- this.move();
- this.collider = this.node.getComponent(BoxCollider2D);
- if (this.collider) {
- this.collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
- }
- }
- public move() {
- this._moveDirection = v2(1, 0);
- }
- //碰撞事件
- onBeginContact(hero_collier: Collider2D, box_collier: Collider2D, contact: IPhysics2DContact | null) {
- console.log("子弹碰撞")
- GameManager.getInstance().addScore(GameManager.getInstance().addscoreNum)
- AudioManage.instance.playSound(Global.Audio_AddScore);
- hero_collier.node.removeFromParent();
- hero_collier.node.destroy();
-
- box_collier.node.removeFromParent();
- box_collier.node.destroy();
- }
- update(deltaTime: number) {
- if (!this._moveDirection || !this.node.parent) return;
-
- if(!GameManager.getInstance().isStartGame)
- return;
- // 计算移动位置
- this.node.translate(v3(this._moveDirection.x * 1000 * deltaTime, 0, 0));
- if (this.node.position.x > this.node.parent.getComponent(UITransform).contentSize.width / 2 - this.node.getComponent(UITransform).width / 2) {
- this.node.removeFromParent();
- this.destroy();
- }
- }
- }
|