Processing 在处理游戏中创建带有阴影的视图

Processing 在处理游戏中创建带有阴影的视图,processing,Processing,我正在使用Processing为学校项目编写一个游戏。我目前正在处理一个球员的视野。玩家的视野基本上是一个圆,但如果前方有障碍物,我希望视野被阻挡,这意味着你看不到障碍物后面的东西。下图是我目前的结果 我的代码: 我使用的方法是从中心开始,穿过玩家视野中的每个像素,选择一条通向圆周的路径。当我向外搜索时,如果在路径上发现障碍物,我会在路径的其余部分画一条黑线。逐步改变路径的方向,最终覆盖整个圆 //画一个圆形视野。 int[]collisionMap=map.getCollisionMap()

我正在使用Processing为学校项目编写一个游戏。我目前正在处理一个球员的视野。玩家的视野基本上是一个圆,但如果前方有障碍物,我希望视野被阻挡,这意味着你看不到障碍物后面的东西。下图是我目前的结果

我的代码:

我使用的方法是从中心开始,穿过玩家视野中的每个像素,选择一条通向圆周的路径。当我向外搜索时,如果在路径上发现障碍物,我会在路径的其余部分画一条黑线。逐步改变路径的方向,最终覆盖整个圆

//画一个圆形视野。
int[]collisionMap=map.getCollisionMap();
//使用大量的小矩形覆盖整个地图,除了圆形视野。
mainpapplet.fill(0,0,0,128);

对于(int i=0;i你所说的是所谓的2d阴影映射(2d shadow mapping)。这不是一个琐碎的话题,但谷歌上有大量的资源。我强烈建议你仔细阅读,因为他们会比我解释得更好

但是我确实找到了你所描述的。完整的代码可以在该链接中找到,但是相关的部分似乎是这个函数:

void drawShadow(){
PVector tmp;
PVector m=新PVector(mouseX,mouseY);//鼠标向量
填充(0);
冲程(0);
对于(int i=0;i

但老实说,你能做的最好的事情就是谷歌“处理阴影映射”并花一些时间阅读结果。这是一个庞大的主题,对于一个单堆栈溢出问题来说有点太宽泛了。

第一个问题是:您是否测量了哪一个位使它变慢了?此方法有很多改进方法,但要知道选择哪一个,您首先需要弄清楚当前solu中什么是变慢的谢谢你的指导,现在我知道该找什么了,真的帮了大忙!