本文整理汇总了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;
}
示例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);
}
}
示例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"); }
}
示例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);
}
}
}