Beispiel #1
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="enemyType">Typ wroga.</param>
        /// <param name="assetName">Nazwa zasobu grafiki wroga.</param>
        /// <param name="life">Liczba życia wroga.</param>
        /// <param name="strenght">Siła ataku.</param>
        /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param>
        /// <param name="direction">Kierunek początkowego porusznia się.</param>
        /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param>
        /// <param name="evolve">Delegatura do funkcji ewolucji.</param>
        /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param>
        /// <param name="webShoot">Delegatura do funkcji strzelania.</param>
        /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param>
        /// <param name="attack">Delegatura do funckji ataku na robaczka.</param>
        public Enemy(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove,
                     WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack)
        {
            _enemyType = enemyType;
            _life      = life;
            _strenght  = strenght;

            _speed           = _startSpeed = speed;
            _slowEffectTime  = 0;
            _elapsedSlowTime = 0;

            _direction = direction;

            _isFreeze          = isFreeze;
            _freezeEffectTime  = 0;
            _elapsedFreezeTime = 0;

            _enemyGraphic = new AnimatedGraphic();

            _evolve   = evolve;
            _testMove = testMove;
            _webShoot = webShoot;
            _observe  = observe;
            _attack   = attack;

            LoadContent(Window.Context.Content, assetName);

            _isKilled = false;
            _sawWorm  = false;
        }
Beispiel #2
0
        /// <summary>
        /// Konstruktor kopiujący
        /// </summary>
        /// <param name="enemy">Obiekt wzorcowy</param>
        public Enemy(Enemy enemy)
        {
            _enemyGraphic = enemy._enemyGraphic.Clone();

            _enemyType  = enemy._enemyType;
            _life       = enemy._life;
            _strenght   = enemy._strenght;
            _speed      = enemy._speed;
            _startSpeed = enemy._startSpeed;
            _direction  = enemy._direction;

            _isFreeze = enemy._isFreeze;
            _isKilled = false;

            _evolve   = enemy._evolve;
            _testMove = enemy._testMove;
            _webShoot = enemy._webShoot;
            _observe  = enemy._observe;
            _attack   = enemy._attack;
            _sawWorm  = enemy._sawWorm;
        }
Beispiel #3
0
Datei: Rat.cs Projekt: kubek96/PI
        /// <summary>
        /// Konstruktor tworzący nowy obiekt szczura.
        /// </summary>
        /// <param name="enemyType">Typ wroga.</param>
        /// <param name="assetName">Nazwa zasobu grafiki wroga.</param>
        /// <param name="life">Liczba życia wroga.</param>
        /// <param name="strenght">Siła ataku.</param>
        /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param>
        /// <param name="direction">Kierunek początkowego porusznia się.</param>
        /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param>
        /// <param name="evolve">Delegatura do funkcji ewolucji.</param>
        /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param>
        /// <param name="webShoot">Delegatura do funkcji strzelania.</param>
        /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param>
        /// <param name="attack">Delegatura do funckji ataku na robaczka.</param>
        public Rat(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove, WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack) : base(enemyType, assetName, life, strenght, speed, direction, isFreeze, evolve, testMove, webShoot, observe, attack)
        {
            _testMove       = TestMove;
            _attack         = Attack;
            _observe        = Observe;
            _visitedGrounds = new bool[20, 20];
            _prevGrounds    = new Ground[20, 20];
            x = 19;
            y = 0;

            // A*
            _distance = new double[20, 20];
            for (int i = 0; i < _distance.GetLength(0); i++)
            {
                for (int j = 0; j < _distance.GetLength(1); j++)
                {
                    _distance[i, j] = double.MaxValue;
                }
            }
            _t              = new List <Tuple <Ground, int, int> >();
            _aIsEnabled     = false;
            _aStarGrounds   = new Tuple <Ground, int, int> [20, 20];
            _aNextPositions = new Stack <Point>();
            //_aStarGrounds = new List<Ground>();
        }