示例#1
0
	void Update()
	{
		if (wait_frames > 0)
		{
			wait_frames--;
			return;
		}
		
		if (requested != null)
		{
			for (int i = 0; i < 512; i++)
			{
				if (Input.GetKeyDown((KeyCode)i))
				{
					if (requested_primary)
						requested.primary = (KeyCode)i;
					else requested.secondary = (KeyCode)i;
					requested = null;
					Settings.SaveSettings();
					break;
				}
			}
		}
		
		if (t > -1f && !leaving) t -= Time.deltaTime * TitleScene.line_speed / 2f;
		else if (leaving && t < 1f)
		{
			if (t < 0f) t = 0f;
			t += Time.deltaTime * TitleScene.line_speed / 2f;
		}
		
		if (t_bottom > -1f) t_bottom -= Time.deltaTime * TitleScene.line_speed * 2f;
		
		if (!leaving)
		{
			if (ret >= 0f && ret < 1f) ret += Time.deltaTime * TitleScene.button_speed;
			if (fs >= 0f && fs < 1f) fs += Time.deltaTime * TitleScene.button_speed;
			if (quality >= 0f && quality < 1f) quality += Time.deltaTime * TitleScene.button_speed;
			if (restart >= 0f && restart < 1f) restart += Time.deltaTime * TitleScene.button_speed;
			if (camera_pos >= 0f && camera_pos < 1f) camera_pos += Time.deltaTime * TitleScene.button_speed;
			if (mute_pos >= 0f && mute_pos < 1f) mute_pos += Time.deltaTime * TitleScene.button_speed;
			if (frames >= 0f && frames < 1f) frames += Time.deltaTime * TitleScene.button_speed;
		}
		else
		{
			ret -= Time.deltaTime * TitleScene.button_speed;
			fs -= Time.deltaTime * TitleScene.button_speed;
			quality -= Time.deltaTime * TitleScene.button_speed;
			restart -= Time.deltaTime * TitleScene.button_speed;
			camera_pos -= Time.deltaTime * TitleScene.button_speed;
			mute_pos -= Time.deltaTime * TitleScene.button_speed;
			frames -= Time.deltaTime * TitleScene.button_speed;
		}
	}
示例#2
0
	void KeySelector(Rect r, Settings.KeyControl k)
	{
		Rect label = new Rect(r.x, r.y, r.width / 3, r.height);
		Rect primary = new Rect(r.x + label.width, r.y, r.width / 3, r.height);
		Rect secondary = new Rect(primary.x + primary.width, r.y, 
			r.width / 3, r.height);
		
		bool l = true, p = true, s = true;
		
		// Line!
		Vector2 line_end = new Vector2(0, label.y);
		if (t > 0f)
		{
			if (key_control_id % 2 == 0)
			{
				line_end.x = Mathf.Lerp(Screen.width, label.x, 1f - t);
				if (!leaving) Utilities.DrawLine(new Vector2(Screen.width, label.y), line_end, 5f, TitleScene.line_color);
			}
			else
			{
				line_end.x = Mathf.Lerp(0, secondary.x + secondary.width, 1f - t);
				if (!leaving) Utilities.DrawLine(new Vector2(0f, label.y), line_end, 5f, TitleScene.line_color);
			}
		}
		else if (t > -1f)
		{
			if (key_control_id % 2 == 0)
			{
				line_end.x = Mathf.Lerp(Screen.width, label.x, -t);
				if (!leaving) Utilities.DrawLine(new Vector2(label.x, label.y), line_end, 5f, TitleScene.line_color);
			}
			else
			{
				line_end.x = Mathf.Lerp(0, secondary.x + secondary.width, -t);
				if (!leaving) Utilities.DrawLine(new Vector2(secondary.x + secondary.width, label.y), line_end, 5f, TitleScene.line_color);
			}
		}
		key_control_id++;
		
		// Restrict them rects!
		if (t > 0f)
		{
			if (key_control_id % 2 == 0)
			{
				float w = Mathf.Max (0, Mathf.Min(label.width, line_end.x - label.x));
				l = w >= label.width;
				label.width = w;
				
				w = Mathf.Max (0, Mathf.Min(primary.width, line_end.x - primary.x));
				p = w >= primary.width;
				primary.width = w;
				
				w = Mathf.Max (0, Mathf.Min(secondary.width, line_end.x - secondary.x));
				s = w >= secondary.width;
				secondary.width = w;
			}
			else
			{
				float w = Mathf.Max(0, Mathf.Min (secondary.width, secondary.x + secondary.width - line_end.x));
				s = w >= secondary.width;
				secondary.x += secondary.width - w;
				secondary.width = w;
				
				w = Mathf.Max(0, Mathf.Min (primary.width, primary.x + primary.width - line_end.x));
				p = w >= primary.width;
				primary.x += primary.width - w;
				primary.width = w;
				
				w = Mathf.Max(0, Mathf.Min (label.width, label.x + label.width - line_end.x));
				l = w >= label.width;
				label.x += label.width - w;
				label.width = w;
			}
		}
		
		if (label.width > 0) GUI.Label(label, l ? k.name : "", key_selection);
		if (requested == null)
		{
			if (p)
			{
				if (GUI.Button(primary, k.primary.ToString(), key_selection))
				{
					requested = k;
					requested_primary = true;
				}
			}
			else
				if (primary.width > 0) GUI.Box(primary, "");
			
			
			if (s)
			{
				if (GUI.Button(secondary, k.secondary.ToString(), key_selection))
				{
					requested = k;
					requested_primary = false;
				}
			}
			else
				if (secondary.width > 0) GUI.Box (secondary, "");
		}
		else
		{
			GUI.Label(primary, 
				(k == requested && requested_primary) ? "<Press any key>" : k.primary.ToString(), 
				(k == requested && requested_primary) ? key_selected : key_selection);
			GUI.Label(secondary, 
				(k == requested && !requested_primary) ? "<Press any key>" : k.secondary.ToString(),
				(k == requested && !requested_primary) ? key_selected : key_selection);
		}
	}
示例#3
0
	void Start()
	{	
		requested = null;
		t_bottom = t = 1f;
		fs = ret = quality = restart = camera_pos = mute_pos = frames = -1f;
	}
示例#4
0
    void KeySelector(Rect r, Settings.KeyControl k)
    {
        Rect label     = new Rect(r.x, r.y, r.width / 3, r.height);
        Rect primary   = new Rect(r.x + label.width, r.y, r.width / 3, r.height);
        Rect secondary = new Rect(primary.x + primary.width, r.y,
                                  r.width / 3, r.height);

        bool l = true, p = true, s = true;

        // Line!
        Vector2 line_end = new Vector2(0, label.y);

        if (t > 0f)
        {
            if (key_control_id % 2 == 0)
            {
                line_end.x = Mathf.Lerp(Screen.width, label.x, 1f - t);
                if (!leaving)
                {
                    Utilities.DrawLine(new Vector2(Screen.width, label.y), line_end, 5f, TitleScene.line_color);
                }
            }
            else
            {
                line_end.x = Mathf.Lerp(0, secondary.x + secondary.width, 1f - t);
                if (!leaving)
                {
                    Utilities.DrawLine(new Vector2(0f, label.y), line_end, 5f, TitleScene.line_color);
                }
            }
        }
        else if (t > -1f)
        {
            if (key_control_id % 2 == 0)
            {
                line_end.x = Mathf.Lerp(Screen.width, label.x, -t);
                if (!leaving)
                {
                    Utilities.DrawLine(new Vector2(label.x, label.y), line_end, 5f, TitleScene.line_color);
                }
            }
            else
            {
                line_end.x = Mathf.Lerp(0, secondary.x + secondary.width, -t);
                if (!leaving)
                {
                    Utilities.DrawLine(new Vector2(secondary.x + secondary.width, label.y), line_end, 5f, TitleScene.line_color);
                }
            }
        }
        key_control_id++;

        // Restrict them rects!
        if (t > 0f)
        {
            if (key_control_id % 2 == 0)
            {
                float w = Mathf.Max(0, Mathf.Min(label.width, line_end.x - label.x));
                l           = w >= label.width;
                label.width = w;

                w             = Mathf.Max(0, Mathf.Min(primary.width, line_end.x - primary.x));
                p             = w >= primary.width;
                primary.width = w;

                w = Mathf.Max(0, Mathf.Min(secondary.width, line_end.x - secondary.x));
                s = w >= secondary.width;
                secondary.width = w;
            }
            else
            {
                float w = Mathf.Max(0, Mathf.Min(secondary.width, secondary.x + secondary.width - line_end.x));
                s               = w >= secondary.width;
                secondary.x    += secondary.width - w;
                secondary.width = w;

                w             = Mathf.Max(0, Mathf.Min(primary.width, primary.x + primary.width - line_end.x));
                p             = w >= primary.width;
                primary.x    += primary.width - w;
                primary.width = w;

                w           = Mathf.Max(0, Mathf.Min(label.width, label.x + label.width - line_end.x));
                l           = w >= label.width;
                label.x    += label.width - w;
                label.width = w;
            }
        }

        if (label.width > 0)
        {
            GUI.Label(label, l ? k.name : "", key_selection);
        }
        if (requested == null)
        {
            if (p)
            {
                if (GUI.Button(primary, k.primary.ToString(), key_selection))
                {
                    requested         = k;
                    requested_primary = true;
                }
            }
            else
            if (primary.width > 0)
            {
                GUI.Box(primary, "");
            }


            if (s)
            {
                if (GUI.Button(secondary, k.secondary.ToString(), key_selection))
                {
                    requested         = k;
                    requested_primary = false;
                }
            }
            else
            if (secondary.width > 0)
            {
                GUI.Box(secondary, "");
            }
        }
        else
        {
            GUI.Label(primary,
                      (k == requested && requested_primary) ? "<Press any key>" : k.primary.ToString(),
                      (k == requested && requested_primary) ? key_selected : key_selection);
            GUI.Label(secondary,
                      (k == requested && !requested_primary) ? "<Press any key>" : k.secondary.ToString(),
                      (k == requested && !requested_primary) ? key_selected : key_selection);
        }
    }
示例#5
0
    void Update()
    {
        if (wait_frames > 0)
        {
            wait_frames--;
            return;
        }

        if (requested != null)
        {
            for (int i = 0; i < 512; i++)
            {
                if (Input.GetKeyDown((KeyCode)i))
                {
                    if (requested_primary)
                    {
                        requested.primary = (KeyCode)i;
                    }
                    else
                    {
                        requested.secondary = (KeyCode)i;
                    }
                    requested = null;
                    Settings.SaveSettings();
                    break;
                }
            }
        }

        if (t > -1f && !leaving)
        {
            t -= Time.deltaTime * TitleScene.line_speed / 2f;
        }
        else if (leaving && t < 1f)
        {
            if (t < 0f)
            {
                t = 0f;
            }
            t += Time.deltaTime * TitleScene.line_speed / 2f;
        }

        if (t_bottom > -1f)
        {
            t_bottom -= Time.deltaTime * TitleScene.line_speed * 2f;
        }

        if (!leaving)
        {
            if (ret >= 0f && ret < 1f)
            {
                ret += Time.deltaTime * TitleScene.button_speed;
            }
            if (fs >= 0f && fs < 1f)
            {
                fs += Time.deltaTime * TitleScene.button_speed;
            }
            if (quality >= 0f && quality < 1f)
            {
                quality += Time.deltaTime * TitleScene.button_speed;
            }
            if (restart >= 0f && restart < 1f)
            {
                restart += Time.deltaTime * TitleScene.button_speed;
            }
            if (camera_pos >= 0f && camera_pos < 1f)
            {
                camera_pos += Time.deltaTime * TitleScene.button_speed;
            }
            if (mute_pos >= 0f && mute_pos < 1f)
            {
                mute_pos += Time.deltaTime * TitleScene.button_speed;
            }
            if (frames >= 0f && frames < 1f)
            {
                frames += Time.deltaTime * TitleScene.button_speed;
            }
        }
        else
        {
            ret        -= Time.deltaTime * TitleScene.button_speed;
            fs         -= Time.deltaTime * TitleScene.button_speed;
            quality    -= Time.deltaTime * TitleScene.button_speed;
            restart    -= Time.deltaTime * TitleScene.button_speed;
            camera_pos -= Time.deltaTime * TitleScene.button_speed;
            mute_pos   -= Time.deltaTime * TitleScene.button_speed;
            frames     -= Time.deltaTime * TitleScene.button_speed;
        }
    }
示例#6
0
 void Start()
 {
     requested = null;
     t_bottom  = t = 1f;
     fs        = ret = quality = restart = camera_pos = mute_pos = frames = -1f;
 }