37 lines
822 B
C++
37 lines
822 B
C++
// Copyright (C) 2019 Nomango
|
|
|
|
#pragma once
|
|
|
|
#include "common.h"
|
|
|
|
// ¹Ì¶¨µÄľ°å
|
|
KGE_DECLARE_SMART_PTR(Board);
|
|
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);
|
|
}
|
|
};
|