Пример #1
0
        public Entity createProjectile(string name, ProjectileController controller, Vector2 pos, ref Sprite sprite)
        {
            // Entity entity = createEntity("Entity");
            ProjectileEntity waveProjectile = new ProjectileEntity(name, controller, ProjectileType.WAVE);

            //Hardcoding position adjustments
            //pos.X += 16;
            waveProjectile.position = pos;

            //Attach Sprite
            sprite.setRenderLayer(1);
            waveProjectile.addComponent <Sprite>(sprite);

            //Attack physics
            PhysicsHandler physicsHandler = new PhysicsHandler(controller.collisionResult);

            physicsHandler.isProjectile = true;
            physicsHandler.applyGravity = false;
            waveProjectile.addComponent <PhysicsHandler>(physicsHandler);

            //Attach hit detection
            CircleCollider circleCollider = new CircleCollider(sprite.width);

            waveProjectile.addComponent <CircleCollider>(circleCollider);
            Flags.setFlagExclusive(ref circleCollider.collidesWithLayers, 0); //Prevent collisions on layer 0
            Flags.setFlagExclusive(ref circleCollider.physicsLayer, 2);       //

            //Attack mover
            Mover mover = new Mover();

            waveProjectile.addComponent <Mover>(mover);

            entity.scene.addEntity <ProjectileEntity>(waveProjectile);

            return(waveProjectile);
        }