void OnCollisionEnter2D(Collision2D collision)
        {
            var e = new CollisionEnter2DEvent(egoComponent, collision.gameObject.GetComponent <EgoComponent>(),
                                              collision);

            EgoEvents <CollisionEnter2DEvent> .AddEvent(e);
        }
示例#2
0
 void Handle(CollisionEnter2DEvent e)
 {
     constraint.ForEachGameObject((egoComponent, transform, player, animator, jump, movement, onCollisionEnter, sound) => {
         if (e.egoComponent2.HasComponents <Ground>() && animator.GetBool("grounded") == false)
         {
         }
     });
 }
示例#3
0
    void Handle(CollisionEnter2DEvent e)
    {
        Debug.Log("Enter Collision Event");
        constraint.ForEachGameObject((egoComponent, spriteRenderer, collisionComponent, lineRenderer, movement, player) => {
            SpriteRenderer shipSprite;
            PlayerComponent playerC;
            //Return if colliding Object has no SpriteRenderer
            if (!e.egoComponent1.TryGetComponents(out shipSprite))
            {
                return;
            }
            //Else change Sprite to Explosion, if you collided with a spaceship
            else if (e.egoComponent2.TryGetComponents(out playerC) && e.egoComponent1.TryGetComponents(out playerC))
            {
                //e.egoComponent1.GetComponent<SpriteRenderer>().sprite = collisionComponent.explodingSprite;
                if (e.egoComponent1.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying &&
                    e.egoComponent2.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying)
                {
                    var ev = new DamageEvent(player.playerID, false);
                    Debug.Log("Damage Event called cause players collided");
                    EgoEvents <DamageEvent> .AddEvent(ev);
                }

                //Unschön, vielleicht geht das ja auch aus dem DamageEvent heraus?

                /*MovementComponent movementComponent;
                 * if (!e.egoComponent1.TryGetComponents(out movementComponent)) {
                 *      return;
                 * }
                 * else {
                 *      movementComponent.myFlyStatus = MovementComponent.FlyStatus.notFlying;
                 * }*/
            }

            PowerUpComponent powerup;
            if (!e.egoComponent2.TryGetComponents(out powerup))
            {
                return;
            }
            else if (e.egoComponent2.TryGetComponents(out powerup))
            {
                Debug.Log("powerup collected");
                Ego.AddComponent <HasSpeedUpComponent>(e.egoComponent1);
                e.egoComponent1.GetComponent <PlayerPowerUpComponent>().playerPowerUpTimer = 0;
                //e.egoComponent2.gameObject.SetActive(false);
                e.egoComponent2.gameObject.GetComponent <SpriteRenderer>().enabled   = false;
                e.egoComponent2.gameObject.GetComponent <CircleCollider2D>().enabled = false;
                var ev = new OnSpeedUpPickUp(e.egoComponent1.GetComponent <PlayerComponent>().playerID);
                EgoEvents <OnSpeedUpPickUp> .AddEvent(ev);
            }
        });
    }
示例#4
0
 void Handle(CollisionEnter2DEvent e)
 {
     constraint.ForEachGameObject((egoComponent, transform, rigbody, jump, player, onCollissionEnter, Animator, AnimationComponent, spriteRend, serialPort) => {
         //When Player lands on ground
         if (e.egoComponent2.HasComponents <Ground>() && jump.jumpstatus == JumpComponent.Jumpstatus.falling)
         {
             jump.jumpstatus = JumpComponent.Jumpstatus.grounded;
             Ego.DestroyComponent <JumpStatus>(egoComponent);
         }
         //When Player jumps against a plattform
         if (e.egoComponent2.HasComponents <Ground>() && jump.jumpstatus == JumpComponent.Jumpstatus.jumping)
         {
             jump.jumpPosition.y = egoComponent.transform.position.y - jump.jumpHeight;
         }
         //When Player lands on Player
         if (e.egoComponent2.HasComponents <PlayerComponent> () && e.egoComponent1.HasComponents <JumpComponent>())
         {
             if (e.egoComponent1.GetComponent <JumpComponent>().jumpstatus == JumpComponent.Jumpstatus.falling)
             {
                 e.egoComponent1.GetComponent <PlayerComponent>().score++;
                 if (e.egoComponent1.GetComponent <PlayerComponent>().score == 12)
                 {
                     EgoEvents <GameEndEvent> .AddEvent(new GameEndEvent(e.egoComponent1.GetComponent <PlayerComponent>().playerID));
                 }
                 EgoEvents <ScoreEvent> .AddEvent(new ScoreEvent(e.egoComponent1.GetComponent <PlayerComponent>().playerID, e.egoComponent1.GetComponent <PlayerComponent>().score));
                 EgoEvents <PlayerHitEvent> .AddEvent(new PlayerHitEvent());
             }
         }
         if (e.egoComponent1.HasComponents <PlayerComponent> () && e.egoComponent2.HasComponents <JumpComponent>())
         {
             if (e.egoComponent2.GetComponent <JumpComponent>().jumpstatus == JumpComponent.Jumpstatus.falling)
             {
                 e.egoComponent2.GetComponent <PlayerComponent>().score++;
                 if (e.egoComponent2.GetComponent <PlayerComponent>().score == 12)
                 {
                     EgoEvents <GameEndEvent> .AddEvent(new GameEndEvent(e.egoComponent2.GetComponent <PlayerComponent>().playerID));
                 }
                 EgoEvents <ScoreEvent> .AddEvent(new ScoreEvent(e.egoComponent2.GetComponent <PlayerComponent>().playerID, e.egoComponent2.GetComponent <PlayerComponent>().score));
                 EgoEvents <PlayerHitEvent> .AddEvent(new PlayerHitEvent());
             }
         }
     });
 }
 void OnCollisionEnter2D( Collision2D collision )
 {
     var e = new CollisionEnter2DEvent( egoComponent, collision.gameObject.GetComponent<EgoComponent>(), collision );
     EgoEvents<CollisionEnter2DEvent>.AddEvent( e );
 }