+#include "playfield.h"
+#include <msp/game/transform.h>
+
+using namespace Msp;
+
+Playfield::Playfield(Game::Handle<Game::Entity> p, const Setup &s):
+ Entity(p, NO_TRANSFORM),
+ setup(s),
+ left(*this, LinAl::Vector<float, 2>(-setup.size.x/2-0.5f, 0.0f), LinAl::Vector<float, 2>(1.0f, setup.size.y+2.0f)),
+ right(*this, LinAl::Vector<float, 2>(setup.size.x/2+0.5f, 0.0f), LinAl::Vector<float, 2>(1.0f, setup.size.y+2.0f)),
+ bottom(*this, LinAl::Vector<float, 2>(0.0f, -setup.size.y/2-0.5f), LinAl::Vector<float, 2>(setup.size.x+2.0f, 1.0f)),
+ top(*this, LinAl::Vector<float, 2>(0.0f, setup.size.y/2+0.5f), LinAl::Vector<float, 2>(setup.size.x+2.0f, 1.0f))
+{ }
+
+
+Playfield::Border::Border(Playfield &f, LinAl::Vector<float, 2> p, LinAl::Vector<float, 2> s):
+ setup{ .fixture=true, .body={}, .collider={ .type=ColliderType::BOX, .size=s }},
+ entity(f, setup, compose(p, 0.0f))
+{ }