当前位置: 首页 > 知识库问答 >
问题:

确定鼠标位于哪个精灵上方

黄沈浪
2023-03-14

我正在尝试确定在一个等距2D游戏中鼠标位于哪个精灵上方。我认为我的最佳选择是将每个精灵绘制成不同的颜色,并将其转换为纹理2D,此时我可以从鼠标点获取颜色数据,并对照绘制的精灵进行检查。

但是,这种方法存在的问题是,我无法将单个精灵的颜色更改为纯色。如果我更改了spriteBatch中的颜色。绘制调用,它只着色精灵的颜色,而不是以纯色绘制,因此我从纹理中检索的数据没有帮助。

在用纯色绘制这些精灵方面有什么建议或帮助吗?

共有1个答案

娄弘
2023-03-14

不要那样做。创建一个新的渲染目标并将数据复制到内存中,即使每秒只需60次,也远远超出了当前系统的处理能力。

只需使用矩形结构的Contains方法:

var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);
 类似资料:
  • 问题内容: 我目前正在用Java开发程序,仅当用户同时用鼠标左键和右键单击时,才必须触发特定事件。 由于这有点不合常规,因此我决定首先进行测试。这里是: 我对其进行了测试,并且可以正常工作,但是存在问题。 如您所见,鼠标左键由表示,鼠标右键由表示。 如果用户的鼠标没有滚轮(显然仍然存在此类鼠标),则在MouseEvent中仅设置两个按钮。这是否意味着右键将由代替?如果是,如何更改代码以适应此要求?

  • 精灵位置 现在你知道了怎么创建和显示一个精灵,让我们学习如何定位他们的位置和改变他们的大小 在最早的示例里那个猫的精灵被放在了舞台的左上角。它的x和y坐标都是0。你可以通过改变它的x和y坐标的值来改变他们的位置。下面的例子就是你通过设置x和y为96坐标让它在舞台上居中。 cat.x = 96; cat.y = 96; 在你创建这个精灵之后,把这两行代码放进setup方法。 function set

  • 对于我的pyplay塔防御计划,我试图弄清楚如何实现与地图上已经放置的其他塔的碰撞。 放置过程将创建一个48x48预览精灵,当它在游戏屏幕上时,该精灵将在玩家鼠标上的网格中移动。塔精灵保存在名为的组中。我有这段代码来检查精灵是否与某些地形瓷砖和塔精灵发生碰撞(这在精灵更新功能中): 循环前进部分是为了检查预览精灵是否与任何塔精灵矩形碰撞。如果是,它将变量设置为true或其他,False。 然后程序

  • 当前的Cloud SQL实例可在以下位置获得:欧洲-West1比利时欧洲-West2伦敦欧洲-West3法兰克福 有什么方法可以找到我的GAE应用程序的其他位置细节,以便决定使用哪个云SQL位置?

  • 父类:BK.Node 精灵类 成员变量 变量 类型 名称 备注 size Object 大小 anchor Object 锚点 cornerRadius number 圆角 单位为像素 例子: var babaTex =new BK.Texture('GameRes://texture/test.png'); var sp =new BK.Sprite(200,200,babaTex,0,1,1

  • 我有一个带有两个顶点的简单图,具有id'a'和'b'。 我已将两条边从“a”分配到“b”,其中每条边都有标签=“foo” [1] 小精灵 == == 每条边都有一个属性key=“已提交”。 [2] 小精灵 == == 我的问题:我想像步骤[2]一样枚举边缘并返回它们各自的属性,但是如何将结果中的边缘属性匹配回它们各自的边缘(id)?我得到的只是属性键值分配;没有与边缘id相关的内容。 谢谢 乔尔·