2019-03-14 17:55:06 +08:00
|
|
|
|
// Copyright (C) 2019 Nomango
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "common.h"
|
|
|
|
|
|
|
|
|
|
|
|
// <20>̶<EFBFBD><CCB6><EFBFBD>ľ<EFBFBD><C4BE>
|
2019-04-11 14:40:54 +08:00
|
|
|
|
KGE_DECLARE_SMART_PTR(Board);
|
2019-03-14 17:55:06 +08:00
|
|
|
|
class Board
|
|
|
|
|
|
: public GeometryNode
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Board(b2World* world, const Size& size, const Point& pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
GeometryPtr geo = new RectangleGeometry(Point(), size);
|
|
|
|
|
|
SetGeometry(geo);
|
|
|
|
|
|
SetStrokeColor(Color::White);
|
|
|
|
|
|
SetFillColor(Color(0, 0, 0, 0));
|
|
|
|
|
|
|
|
|
|
|
|
SetSize(size);
|
|
|
|
|
|
SetAnchor(0.5f, 0.5f);
|
|
|
|
|
|
SetRotation(10);
|
|
|
|
|
|
SetPosition(pos);
|
|
|
|
|
|
|
|
|
|
|
|
b2BodyDef groundBodyDef;
|
|
|
|
|
|
groundBodyDef.position = Vec2Convert(GetPosition());
|
|
|
|
|
|
groundBodyDef.angle = 10 * math::constants::PI_F / 180.f;
|
|
|
|
|
|
|
|
|
|
|
|
b2Body* groundBody = world->CreateBody(&groundBodyDef);
|
|
|
|
|
|
|
|
|
|
|
|
b2PolygonShape groundBox;
|
|
|
|
|
|
b2Vec2 sz = Vec2Convert(Point{ size.x / 2, size.y / 2 });
|
|
|
|
|
|
groundBox.SetAsBox(sz.x, sz.y);
|
|
|
|
|
|
groundBody->CreateFixture(&groundBox, 0.0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|