1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import { _decorator, Collider2D, Component, Contact2DType, Director, director, instantiate, IPhysics2DContact, Node, Prefab, RigidBody2D, Size, Sprite, SpriteFrame, UITransform, Vec3 } from 'cc';
- import { model_item_data } from '../data';
- import { config } from '../config';
- import { box } from './box';
- import { coin } from './coin';
- import { wall } from './wall';
- import Coroutine from '../lib/Coroutine';
- import { tools } from '../tools';
- import { car } from './car';
- import { base } from './base';
- const { ccclass, property } = _decorator;
- @ccclass('run_level_item')
- export class run_level_item extends Component {
- private mData:model_item_data = null;
- private sfList:SpriteFrame[] = [];
- private sfBuffList:SpriteFrame[] = [];
- private mCar:car = null;
- public initView(data:model_item_data,l:SpriteFrame[],bl:SpriteFrame[],car:car){
- this.mData = data
- this.mCar = car
- this.sfList = l
- this.sfBuffList = bl
- this.node.getComponent(UITransform).contentSize = new Size(this.mData.width,this.mData.height)
- for (let index = 0; index < data.list.length; index++) {
- const element = data.list[index];
- // Coroutine.instance.start(this, this.init, 0.2, 0, element);
- this.init(element)
- }
- }
- private init(element){
- let node:Node = null;
- if(tools.isBox(element.item_type)){
- node = this.mCar.getGame().getPoolManager().getBox()
- node.getComponent(box).init(element, this.sfList[element.item_type-1],element.buff_type>0?this.sfBuffList[element.buff_type-1]:null,this.mCar)
- this.mCar.getGame().addBoxForList(node)
- }else if(element.item_type==config.item_type.coin){
- node = this.mCar.getGame().getPoolManager().getCoin()
- node.getComponent(coin).init(element,this.mCar)
- this.mCar.getGame().addCoinForList(node)
- }else if(element.item_type==config.item_type.wall){
- node = this.mCar.getGame().getPoolManager().getWall()
- node.getComponent(wall).init(element)
- this.mCar.getGame().addWallForList(node)
- }
- if(node!=null){
- node.parent = this.node
- }
-
- }
- public removeAll(){
- this.node.getComponent(RigidBody2D).sleep()
- for (let index = 0; index < this.node.children.length; index++) {
- const node = this.node.children[index];
- let element = node.getComponent(base).getData()
- if(tools.isBox(element.item_type)){
- node.getComponent(box).removeSelf()
- }else if(element.item_type==config.item_type.coin){
- node.getComponent(coin).removeSelf()
- }else if(element.item_type==config.item_type.wall){
- this.mCar.getGame().removeWallForList(node)
- this.mCar.getGame().getPoolManager().putWall(node)
- }
- }
- // director.once(Director.EVENT_AFTER_DRAW,()=>{
- // this.node.destroy()
- // })
- this.node.removeFromParent()
-
- }
- }
|