Example #1
0
    public BetterColor(BetterColor copyColor)
    {
        R = copyColor.R;
        G = copyColor.G;
        B = copyColor.B;
        A = copyColor.A;

        RGBtoHSV();
    }
    public void Clone(GameObject parent, bool copyColor)
    {
        network = new NeuralNetwork(parent.GetComponent <CarController>().GetNetwork());

        if (copyColor)
        {
            color = parent.GetComponent <CarController>().GetColor();
        }
    }
    // Update is called once per frame
    private void Update()
    {
        if (finished)
        {
            if (speed.Count() > 0)
            {
                avgSpeed = 0f;

                speed = speed.OrderByDescending(e => e).ToList();

                topSpeed = speed[0];

                foreach (float item in speed)
                {
                    avgSpeed += item;
                }

                avgSpeed /= (float)speed.Count();

                speed = new List <float>();
            }
        }
        else
        {
            speed.Add(currentSpeed); // speed in mph
        }

        BetterColor value = new BetterColor(color.GetColor());

        //Color value = color.GetColor();

        if (died)
        {
            value.V = 0.25f;
        }

        if (hitGoal)
        {
            value.S = 0.25f;
        }

        if (finished)
        {
            value.A = 0.5f;
        }
        else
        {
            value.A = 1f;
        }

        value.HSVtoRGB();

        GetComponent <Renderer>().material.SetColor("_Color", value.GetColor());
    }
    public void Mutate(GameObject parent)
    {
        network = new NeuralNetwork(parent.GetComponent <CarController>().GetNetwork());
        network.Mutate();

        color = parent.GetComponent <CarController>().GetColor();

        color.MutateColor();
        color.ModifyColor();
        color.V = 1f;
    }
Example #5
0
    public void MixColors(BetterColor color1, BetterColor color2)
    {
        float difference = Mathf.Abs(color1.H - color2.H);

        H = (color1.H + color2.H) / 2f;

        if (difference > 0.5f)
        {
            H += 0.5f;
        }

        WrapHue();

        HSVtoRGB();
    }
    private void Awake()
    {
        //color = new Vector3(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));

        //renderer.material.set

        speed = new List <float>();

        color = new BetterColor();

        if (!File.Exists(Application.dataPath + "/carSettings.xml")) // check if file exists
        {
            CarSettings carSettings = new CarSettings
            {
                brakeForce    = this.brakeForce,
                drag          = this.drag,
                maxVelocity   = this.maximumVelocity,
                steeringAngle = this.steeringAngle,
                throttleForce = this.throttleForce
            };

            //XmlSerializer xmls = new XmlSerializer(typeof(CarSettings));

            //FileStream file = new FileStream(Application.dataPath + "/carSettings.xml", FileMode.Create);

            //xmls.Serialize(file, carSettings);

            //file.Close();

            XMLManager.SaveData(carSettings, Application.dataPath + "/carSettings.xml");
        }
        else // load modded file
        {
            XMLManager.LoadData(out CarSettings carSettings, Application.dataPath + "/carSettings.xml");

            brakeForce      = carSettings.brakeForce;
            drag            = carSettings.drag;
            maximumVelocity = carSettings.maxVelocity;
            steeringAngle   = carSettings.steeringAngle;
            throttleForce   = carSettings.throttleForce;
        }

        if (!legacyControls)
        {
            GetComponent <Rigidbody>().centerOfMass = new Vector3(0f, -0.5f, -0.2f);
            GetComponent <Rigidbody>().drag         = drag;
        }
    }