Esempio n. 1
0
 private void Init(bool showMapName, Vector2 pos, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection)
 {
     this.showMapName = showMapName;
         this.pos = pos;
         this.name = name;
         this.targetMap = targetMap;
         this.targetSpawn = targetSpawn;
         this.exitDirection = exitDirection;
 }
Esempio n. 2
0
 public SpawnPoint(bool showMapName, float x, float y, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection)
 {
     Init(showMapName, new Vector2(x, y), name, targetMap, targetSpawn, exitDirection);
 }
Esempio n. 3
0
    private void EnemyTransition(FutileFourDirectionBaseObject.Direction dir, FutilePlatformerBaseObject enemy)
    {
        if (enemy is Enemy)
        {
            Enemy e = ((Enemy)enemy);
            e.SetDirection(dir);
            e.PlayAnim();
        }
        else if (enemy is Ninja)
        {

            Ninja n = ((Ninja)enemy);
            n.SetDirection(dir);
            n.PlayAnim();
        }

        Tween t = null;
        float randAmount = 8.0f;
        float minAmount = 1.0f;
        switch (dir)
        {
            case FutileFourDirectionBaseObject.Direction.DOWN:
                enemy.y += collisionTilemap.tileHeight * 2f;
                enemy.x += RXRandom.Float() * 2 * collisionTilemap.tileWidth - collisionTilemap.tileWidth;
                t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("y", -collisionTilemap.tileHeight * 2f, true));
                break;
            case FutileFourDirectionBaseObject.Direction.UP:
                enemy.y -= collisionTilemap.tileHeight * 2f;
                enemy.x += RXRandom.Float() * 2 * collisionTilemap.tileWidth - collisionTilemap.tileWidth;
                t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("y", collisionTilemap.tileHeight * 2f, true));
                break;
            case FutileFourDirectionBaseObject.Direction.RIGHT:
                enemy.x -= collisionTilemap.tileWidth * 2f;
                enemy.y += RXRandom.Float() * 2 * collisionTilemap.tileHeight - collisionTilemap.tileHeight;
                t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("x", collisionTilemap.tileWidth * 2f, true));
                break;
            case FutileFourDirectionBaseObject.Direction.LEFT:
                enemy.x += collisionTilemap.tileWidth * 2f;
                enemy.y += RXRandom.Float() * 2 * collisionTilemap.tileHeight - collisionTilemap.tileHeight;
                t = Go.to(enemy, minAmount, new TweenConfig().setEaseType(EaseType.QuadOut).setDelay(RXRandom.Float() * randAmount).floatProp("x", -collisionTilemap.tileWidth * 2f, true));
                break;
        }
        t.setOnCompleteHandler((AbstractTween tw) =>
        {
            if (enemy is Enemy)
            {
                Enemy e = ((Enemy)enemy);
                e.currentState = Enemy.State.IDLE;
                e.StateCount = 1;

            }
            else if (enemy is Ninja)
            {
                Ninja n = ((Ninja)enemy);
                n.currentState = Ninja.State.IDLE;
                n.StateCount = 1;
            }
        });
    }
Esempio n. 4
0
 public SpawnPoint(bool showMapName, Vector2 pos, string name, string targetMap, string targetSpawn, FutileFourDirectionBaseObject.Direction exitDirection)
 {
     Init(showMapName, pos, name, targetMap, targetSpawn, exitDirection);
 }
Esempio n. 5
0
 private void SpawnParticles(FutileFourDirectionBaseObject.Direction dir, int numParticles = 10)
 {
     for (int i = 0; i < numParticles; i++)
     {
         Particle.ParticleOne p = Particle.ParticleOne.getParticle();
         Vector2 vel = new Vector2(-RXRandom.Float() * 20 + 10, -RXRandom.Float() * 20);
         Vector2 acc = new Vector2(-vel.x * (RXRandom.Float() * .5f), -vel.y * -1.0f);
         Vector2 pos = new Vector2(RXRandom.Float() * 16 - 8, 8);
         switch (dir)
         {
             case FutileFourDirectionBaseObject.Direction.DOWN:
                 vel.y *= -1;
                 acc.y *= -1;
                 break;
             case FutileFourDirectionBaseObject.Direction.RIGHT:
                 float tempX = vel.x;
                 vel.x = vel.y;
                 vel.y = tempX;
                 tempX = acc.x;
                 acc.x = acc.y;
                 acc.y = tempX;
                 tempX = pos.x;
                 pos.x = pos.y;
                 pos.y = tempX;
                 pos.x *= -1;
                 break;
             case FutileFourDirectionBaseObject.Direction.UP:
                 pos.y *= -1;
                 break;
             case FutileFourDirectionBaseObject.Direction.LEFT:
                 tempX = vel.x;
                 vel.x = vel.y;
                 vel.y = tempX;
                 tempX = acc.x;
                 acc.x = acc.y;
                 acc.y = tempX;
                 tempX = pos.x;
                 pos.x = pos.y;
                 pos.y = tempX;
                 vel.x *= -1;
                 acc.x *= -1;
                 break;
         }
         p.activate(this.GetPosition() +pos, vel, acc, RXRandom.Bool() ? 180.0f : 0);
         this.container.AddChild(p);
     }
 }