Colors 获取移动2D背景上特定点的颜色

Colors 获取移动2D背景上特定点的颜色,colors,background,xna,point,2d-games,Colors,Background,Xna,Point,2d Games,我正在尝试构建一个简单的2D游戏,在这个游戏中,滑雪者必须在某个“走廊”中前进 因此,我创建了一个无缝的背景,并将其沿屏幕从右向左移动。背景纹理是屏幕宽度的三倍——我在两个位置绘制纹理以创建无缝的错觉 滑雪者可以上下移动,只要他停留在走廊里(完全是白色的),就应该得到分数,如果他到了外面(略带灰色),他会得到负值——这表明他有错误的行为 我的问题 有没有一种简单快捷的方法可以根据滑雪板尖端的当前位置获取像素的颜色?既然我知道滑雪板在屏幕上的位置,我也可以用后缓冲垫来做这个吗 我尝试使用以下方法

我正在尝试构建一个简单的2D游戏,在这个游戏中,滑雪者必须在某个“走廊”中前进

因此,我创建了一个无缝的背景,并将其沿屏幕从右向左移动。背景纹理是屏幕宽度的三倍——我在两个位置绘制纹理以创建无缝的错觉

滑雪者可以上下移动,只要他停留在走廊里(完全是白色的),就应该得到分数,如果他到了外面(略带灰色),他会得到负值——这表明他有错误的行为

我的问题

有没有一种简单快捷的方法可以根据滑雪板尖端的当前位置获取像素的颜色?既然我知道滑雪板在屏幕上的位置,我也可以用后缓冲垫来做这个吗

我尝试使用以下方法获得颜色:

    backgroundTexture.GetData<Color>(0, sourceRectangle, slopeColor, 0,1);
backgroundTexture.GetData(0,sourceRectangle,slopeColor,0,1);

其中sourceRectangle与skitip一起移动,而slopeColor是一个带有一个条目的颜色数组。

我现在可以解决这个问题,但我不知道这是否是最好的解决方案。。。我创建了一个1D颜色数组来保存整个背景纹理,并检查滑雪板的当前位置是否为白色。但是,由于背景移向左侧-滑雪板的当前位置不是SkitiPosition+backgroundPosition之和,而是差异…:-/愚蠢的签名错误从backbuffer(或GPU上的任何缓冲区)访问数据时,寻找“每像素冲突”的速度会很慢。尽量把你正在使用的数据保存在CPU上。我认为你正在朝着正确的方向前进。我会创建一个简单的纹理,有“好”和“坏”的区域。既然你知道滑雪板的尖端在哪里,你就可以与之比较。您将永远不会显示此纹理,因此永远不会转到GPU。您可以像滚动实际纹理一样滚动它以保持同步。