void OnCollisionEnter2D(Collision2D collision) { var e = new CollisionEnter2DEvent(egoComponent, collision.gameObject.GetComponent <EgoComponent>(), collision); EgoEvents <CollisionEnter2DEvent> .AddEvent(e); }
void Handle(CollisionEnter2DEvent e) { constraint.ForEachGameObject((egoComponent, transform, player, animator, jump, movement, onCollisionEnter, sound) => { if (e.egoComponent2.HasComponents <Ground>() && animator.GetBool("grounded") == false) { } }); }
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); } }); }
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 ); }