Пример #1
0
    protected override void OnUpdate()
    {
        for (int index = 0; index < cannonsData.Length; index++)
        {
            if (index >= BootStrap.GameSettings.CannonPositions.Count)
            {
                return;
            }

            Position2D position2D = cannonsData.Positions[index];
            Heading2D  heading2D  = cannonsData.Headings[index];

            Vector2 settingsCannonPos     = BootStrap.GameSettings.CannonPositions[index];
            Vector2 settingsCannonHeading = BootStrap.GameSettings.CannonHeadings[index];

            float2 pos     = new float2(settingsCannonPos.x, settingsCannonPos.y);
            float2 heading = new float2(settingsCannonHeading.x, settingsCannonHeading.y);

            position2D.Value = pos;
            heading2D.Value  = math.normalize(heading);

            cannonsData.Positions[index] = position2D;
            cannonsData.Headings[index]  = heading2D;
        }
    }
Пример #2
0
    public void Execute(int index)
    {
        var human = humanDatum.Human[index];

        if (human.IsInfected == 1)
        {
            return;
        }

        human.TimeTillNextDirectionChange -= dt;

        if (human.TimeTillNextDirectionChange <= 0)
        {
            human.TimeTillNextDirectionChange = 5;

            float randomX = (randomFloats[index] - 0.5f) * 2f;
            float randomY = (randomFloats2[index] - 0.5f) * 2f;

            Heading2D heading2D = humanDatum.Heading[index];
            heading2D.Value           = new float2(randomX, randomY);
            humanDatum.Heading[index] = heading2D;

            //MoveSpeed moveSpeed = humanDatum.MoveSpeed[index];
            //moveSpeed.speed = index;
            //humanDatum.MoveSpeed[index] = moveSpeed;
        }

        humanDatum.Human[index] = human;
    }
    protected override void OnUpdate()
    {
        for (int index = 0; index < arrowData.Length; index++)
        {
            for (int inIndex = 0; inIndex < ingredientData.Length; inIndex++)
            {
                Ingredient ingredient = ingredientData.ingredients[inIndex];

                float2 delta    = arrowData.arrowPositions[index].Value - ingredientData.ingredientPositions[inIndex].Value;
                float  distance = math.sqrt(math.pow(delta.x, 2) + math.pow(delta.y, 2));

                if (distance < distanceToCatchIngridient)
                {
                    ingredientData.ingredients[inIndex] = ingredient;

                    Heading2D  arrowHeading  = arrowData.arrowHeadings[index];
                    Position2D arrowPosition = arrowData.arrowPositions[index];

                    ingredientData.ingredientHeadings[inIndex]  = arrowHeading;
                    ingredientData.ingredientPositions[inIndex] = arrowPosition;
                }
            }
        }
    }