OpenSiv3D P2Body에 텍스쳐 붙여넣기

5302 단어 OpenSiv3DC++
개요
현재 OpenSiv3D에서는 디버그를 Rect 등에 붙여넣었지만 P2 Body에 붙여넣을 수 없습니다(못할 것 같습니다).
따라서 P2Body 객체에서 Rect를 작성하여 텍스쳐를 붙여 넣습니다.
20.3.11:14 보충P2Body::as<P2XXXX>(size_t index)에서 서로 다른 모양의 내부 대상에 대한 지침을 얻는다.그리고 구성원 함수getQuad()를 통해 Quad를 가져와 무늬를 붙인다.
@Reputeless선생님, 감사합니다!
소스 코드
# include <Siv3D.hpp> // v0.4.3

void Main()
{
    P2World world(9.8);

    // 地面
    P2Body Ground=world.createStaticLine(Vec2(0,0), Line(-100,100,100,100));

    // 落下させる箱
    P2Body Box=world.createRect(Vec2(0,0), Rect(0,0,50)).setAngle(60_deg);

    // 貼り付けるテクスチャ
    // TextureDesc::Mipped でGPU負荷軽減・画質向上
    Texture texture(U"example/windmill.png",TextureDesc::Mipped);

    // カメラ
    Camera2D camera(Vec2(0,0));


    while (System::Update())
    {
        // 物理演算
        world.update();

        // 2D カメラを更新
        camera.update();
        {   // 2D カメラの設定から Transformer2D を作成・適用
            const auto t = camera.createTransformer();

            // 1.Box.as(0) でBoxのQuadを取得
            const Quad quad = Box.as<P2Rect>(0)->getQuad();

            // 2.テクスチャを貼り付けて描画
            quad(texture).draw();

            // 地面の描画
            Ground.draw(Palette::Lightgreen);
        }

        // UI表示
        camera.draw(Palette::Orange);
    }
}

실행 결과

좋은 웹페이지 즐겨찾기