Magic_Game/samples/Box2DSample/Board.h

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);
}
};