当前位置: 首页>>代码示例>>C#>>正文


C# Sprite.GetComponent方法代码示例

本文整理汇总了C#中Sprite.GetComponent方法的典型用法代码示例。如果您正苦于以下问题:C# Sprite.GetComponent方法的具体用法?C# Sprite.GetComponent怎么用?C# Sprite.GetComponent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Sprite的用法示例。


在下文中一共展示了Sprite.GetComponent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ShelledEnemyComponent

        /// <summary>
        ///   Initializes a new instance of the <see cref="ShelledEnemyComponent"
        ///   /> sprite.
        /// </summary>
        /// <param name="owner">The sprite that owns this component.</param>
        /// <param name="walkingVelocity">
        ///   The horizontal velocity at which the owner will walk.
        /// </param>
        /// <param name="shellSpinningVelocity">
        ///   The horizontal velocity at which the owner will spin.
        /// </param>
        /// <param name="framesFromShellToEmerging">
        ///   The number of frames between entering the Shell state and entering
        ///   the Emerging state.
        /// </param>
        /// <param name="framesFromEmergingToWalking">
        ///   The number of frames between entering the Emerging state and
        ///   entering the Walking state.
        /// </param>
        public ShelledEnemyComponent(Sprite owner, float walkingVelocity, float shellSpinningVelocity, int framesFromShellToEmerging, int framesFromEmergingToWalking)
        {
            WalkerComponent walker = owner.GetComponent<WalkerComponent>();
            DamageComponent damage = owner.GetComponent<DamageComponent>();
            ChasePlayerComponent chasePlayer = owner.GetComponent<ChasePlayerComponent>();

            if (walker == null || damage == null || chasePlayer == null)
            {
                throw new ArgumentException("This component requires its owner to have WalkerComponent, DamageComponent, and ChasePlayerComponent instances before constructing this ShelledEnemyComponent.");
            }

            IsActive = true;
            Owner = owner;
            spriteWalker = walker;
            spriteDamage = damage;
            spriteChasePlayer = chasePlayer;

            behavior = ShelledEnemyBehavior.DontTurnOnCliffs;
            state = ShelledEnemyState.Walking;

            this.walkingVelocity = walkingVelocity;
            this.shellSpinningVelocity = shellSpinningVelocity;
            this.framesFromShellToEmerging = framesFromShellToEmerging;
            this.framesFromEmergingToWalking = framesFromEmergingToWalking;

            spriteWalker.CurrentVelocity = walkingVelocity;
        }
开发者ID:smldev,项目名称:smlimitless,代码行数:46,代码来源:ShelledEnemyComponent.cs

示例2: PerformDamage

        /// <summary>
        ///   Performs damage to sprite with a <see cref="HealthComponent" /> instance.
        /// </summary>
        /// <param name="sprite">The sprite to damage.</param>
        /// <param name="damageType">The type of damage to perform.</param>
        /// <param name="hpAmount">How many hit points to damage for.</param>
        public void PerformDamage(Sprite sprite, string damageType, int hpAmount)
        {
            if (sprite == null) { throw new ArgumentNullException(nameof(sprite), "The provided sprite was null."); }
            if (string.IsNullOrEmpty(damageType)) { throw new ArgumentNullException(nameof(damageType), "The provided damage type was null or empty."); }
            if (hpAmount <= 0) { throw new ArgumentOutOfRangeException(nameof(hpAmount), $"The provided HP amount of {hpAmount} is out of range; it must be positive."); }

            HealthComponent spriteHealthComponent = sprite.GetComponent<HealthComponent>();
            if (spriteHealthComponent != null)
            {
                spriteHealthComponent.Damage(hpAmount, damageType);
            }
        }
开发者ID:smldev,项目名称:smlimitless,代码行数:18,代码来源:DamageComponent.cs

示例3: OnSpriteCollision

 // this will probably be something like FatalTile at some point
 // ...imagine core tile methods here...
 public void OnSpriteCollision(Sprite sprite, Vector2 intersectDepth)
 {
     DamageComponent dmg = sprite.GetComponent<DamageComponent>();
     if (dmg != null) { dmg.Kill("lava", "vaporize"); }
 }
开发者ID:smldev,项目名称:smlimitless,代码行数:7,代码来源:GoombaInteractionExample.cs

示例4: HandleSpriteCollisionWhileShellSpinning

 private void HandleSpriteCollisionWhileShellSpinning(Sprite sprite, Vector2 resolutionDistance)
 {
     if (sprite.IsPlayer)
     {
         if (Sprite.IsStomping(sprite, Owner))
         {
             GoToShell();
         }
         else
         {
             spriteDamage.PerformDamage(sprite, SpriteDamageTypes.ShellSpinning, 1);
         }
     }
     else
     {
         var shelledEnemy = sprite.GetComponent<ShelledEnemyComponent>();
         if (shelledEnemy != null && shelledEnemy.State == ShelledEnemyState.ShellSpinning)
         {
             spriteDamage.PerformDamage(sprite, SpriteDamageTypes.ShellSpinning, 1);
             spriteDamage.PerformDamage(Owner, SpriteDamageTypes.ShellSpinning, 1);
         }
         else
         {
             spriteDamage.PerformDamage(sprite, SpriteDamageTypes.ShellSpinning, 1);
         }
     }
 }
开发者ID:smldev,项目名称:smlimitless,代码行数:27,代码来源:ShelledEnemyComponent.cs


注:本文中的Sprite.GetComponent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。