mirror of
				https://github.com/MaddyThorson/StrawberryBF.git
				synced 2025-11-04 01:41:33 +08:00 
			
		
		
		
	Camera stack
This commit is contained in:
		@ -205,7 +205,11 @@ namespace Strawberry
 | 
			
		||||
		public virtual void Draw()
 | 
			
		||||
		{
 | 
			
		||||
			if (Scene != null)
 | 
			
		||||
			{
 | 
			
		||||
				Draw.PushCamera(Scene.Camera.Round());
 | 
			
		||||
				Scene.Draw();
 | 
			
		||||
				Draw.PopCamera();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (Console.Enabled)
 | 
			
		||||
				Strawberry.Console.Draw();
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,6 @@ namespace Strawberry
 | 
			
		||||
 | 
			
		||||
		static public void Draw()
 | 
			
		||||
		{
 | 
			
		||||
			Calc.Log();
 | 
			
		||||
			Draw.Rect(0, 0, Game.Width, Game.Height, .Black * 0.4f);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1,11 +1,29 @@
 | 
			
		||||
using SDL2;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections;
 | 
			
		||||
 | 
			
		||||
namespace Strawberry
 | 
			
		||||
{
 | 
			
		||||
	static public class Draw
 | 
			
		||||
	{
 | 
			
		||||
		static public Point Camera => Game.Scene != null ? Game.Scene.Camera.Round() : Point.Zero;
 | 
			
		||||
		static public Point Camera => cameraStack.Count > 0 ? cameraStack.Back : Point.Zero;
 | 
			
		||||
 | 
			
		||||
		static private List<Point> cameraStack = new List<Point>() ~ delete _;
 | 
			
		||||
 | 
			
		||||
		static public void PushCamera(Point camera, bool relative = true)
 | 
			
		||||
		{
 | 
			
		||||
			if (relative)
 | 
			
		||||
				cameraStack.Add(Camera + camera);
 | 
			
		||||
			else
 | 
			
		||||
				cameraStack.Add(camera);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		static public void PopCamera()
 | 
			
		||||
		{
 | 
			
		||||
			if (cameraStack.Count == 0)
 | 
			
		||||
				Runtime.FatalError("Cannot Pop empty Camera Stack!");
 | 
			
		||||
			cameraStack.PopBack();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		static public void Rect(int x, int y, int w, int h, Color color)
 | 
			
		||||
		{
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user