首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在D2D1中旋转对象

无法在D2D1中旋转对象
EN

Stack Overflow用户
提问于 2018-03-24 00:37:55
回答 1查看 150关注 0票数 0

我是新来的直接2D和有点迷失。我试图旋转一个物体,但我所做的方式,它是旋转整个游戏屏幕,而不是仅仅一个物体。我不知道如何接近旋转只是特定的物体。我希望我已经提供了足够的信息,但如果没有,请告诉我。如果这是个愚蠢的简单问题,我很抱歉。任何帮助都将不胜感激。

代码语言:javascript
复制
void SpriteSheet::Draw(bool rotate)
{

ID2D1Effect *chromakeyEffect = NULL;
ID2D1Effect *scaleit = NULL;
ID2D1Effect * rotation = NULL;

D2D1_POINT_2F ptss = { 50, 50 };
D2D1_VECTOR_3F vec{ -5.0f, -500.0f, 100.0f };


D2D1_VECTOR_3F vector{ 0.0f, 1.0f, 0.0f };

// this is the rotating part
if (rotate)
{
    //D2D1::Matrix3x2F::Identity()._11;
    gfx->GetRenderTarget()->SetTransform(
        D2D1::Matrix3x2F::Rotation(20, D2D1::Point2F(100, 100)));
}



gfx->GetDeviceContext()->CreateEffect(CLSID_D2D1ChromaKey, &chromakeyEffect);
gfx->GetDeviceContext()->CreateEffect(CLSID_D2D1Scale, &scaleit);
gfx->GetDeviceContext()->CreateEffect(CLSID_D2D12DAffineTransform, &rotation);

// applying chroma key
chromakeyEffect->SetInput(0, bmp);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_COLOR, vector);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_TOLERANCE, 0.8f);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_INVERT_ALPHA, false);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_FEATHER, false);

// scale the object
scaleit->SetInputEffect(0, chromakeyEffect);
//scaleit->SetValue(D2D1_SCALE_PROP_BORDER_MODE, vec);
//scaleit->SetValue(D2D1_SCALE_PROP_CENTER_POINT, D2D1::Vector2F(1.0f, 1.0f));
scaleit->SetValue(D2D1_SCALE_PROP_SCALE, D2D1::Vector2F(0.50f, 0.50f));

// draw it on screen
gfx->GetDeviceContext()->DrawImage(scaleit, ptss);

if (chromakeyEffect) chromakeyEffect->Release();        
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 00:49:40

刚刚遇到了旋转矩阵,这解决了这个问题。我采用了比例效应,并对其进行旋转。

代码语言:javascript
复制
if(rotate)
{
    rotation->SetInputEffect(0, scaleit);
    D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F::Rotation(98, D2D1::Point2F(50, 40));

    rotation->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49460076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档