Windows phone 7 如何模拟2d 3D like(放置)

Windows phone 7 如何模拟2d 3D like(放置),windows-phone-7,3d,xna,2d,Windows Phone 7,3d,Xna,2d,如果我有一个文本和图像的网格,比如日历视图。如果我希望整个网格向下倾斜45度,并且仍然能够对手指点击/滚动做出响应,那么该怎么做?非常感谢 好的,如果你在XNA做这件事,你会想使用广告牌。恐怕我还不需要广告牌,所以我不能给你具体的细节,但像往常一样,有一个专门的广告牌。现在,您特别想要一个带有控件的交互式广告牌。如果你以前从未有过3D体验,这将是复杂的。以下是您希望执行的操作: 像通常使用SpriteBatch一样绘制控件/文本,但事先将GraphicsDevice的RenderTarget设置

如果我有一个文本和图像的网格,比如日历视图。如果我希望整个网格向下倾斜45度,并且仍然能够对手指点击/滚动做出响应,那么该怎么做?非常感谢

好的,如果你在XNA做这件事,你会想使用广告牌。恐怕我还不需要广告牌,所以我不能给你具体的细节,但像往常一样,有一个专门的广告牌。现在,您特别想要一个带有控件的交互式广告牌。如果你以前从未有过3D体验,这将是复杂的。以下是您希望执行的操作:

  • 像通常使用SpriteBatch一样绘制控件/文本,但事先将GraphicsDevice的RenderTarget设置为新的RenderTarget,然后保存。查找有关更改渲染目标的文档。绘制控件后,请记住将其设置回原位
  • 现在,使用显式强制转换将RenderTarget转换为Texture2D:
    Texture2D myTex=(Texture2D)myRenderTarget
  • 在广告牌上绘制此纹理
  • 现在是棘手的部分:您需要使用一种称为“拾取”的技术来确定用户在3D空间中单击的位置。AppHub有一些精选教程,但它们面向复杂模型。因为广告牌只使用了一个有两个三角形的平面,所以在这种情况下,它们不会以任何精度工作,这是您需要的。相反,我建议
  • 从本质上说,你需要一个好的系统来跟踪可点击的东西在3D空间的广告牌上的位置。你可以用平面方程,如果你知道的话(我想我是在微积分III学的)。如果您只需要基本功能,您可以使用这些方程式来跟踪按钮的中心,然后对单击进行半径测试,尽管这并不完全准确,除非您的按钮是圆形的


    如果你说不出来,当你尝试在3D世界中应用2D概念时,事情会很快变得复杂。

    有一个非常简单的解决方案。 如果使用Expression Blend打开项目,选择网格后,转到“属性”选项卡,向下滚动到“Transform”,应该有一个名为“Rotation”的属性,只需更改X:Y:Z:值,直到网格旋转到您想要的样子。它的行为完全符合你的预期

    以下是XAML代码:

    <Grid.Projection>
        <PlaneProjection RotationX="-43"/>
    </Grid.Projection>
    

    我以为我在主题中写了“XNA”,但不知怎的它不见了。我很难使用XNA或silverlight。但我觉得使用XNA更舒服,因为它是直截了当的。Silverlight能否在网格内动态添加控件?在网格控件内绘制文本和图像?轮换能动态变化吗?是否可以使用网格内新添加的控件处理单击事件?请告知!谢谢!我不确定是否要创建控件,因为我自己还没有这样做,但可以绘制文本和图像,可以动态更改旋转,不确定是否要为新创建的控件处理事件。您是否尝试过有关Silverlight控件的MSDN文章?