我正在制作一个以三角形视角渲染的游戏(如等距,但是一组瓷砖边比另一组更陡峭)。我想添加鼠标滚过图块或对象时的功能(突出显示,弹出窗口等)。
对象和图块都会有复杂的形状,我正在寻找鼠标经过它们时最好的标记方法,特别是因为最顶层的对象应该优先于背景对象。
目前,对于每个帧,在作为缓冲图像加载后,图块和对象在画布上由Graphics.drawImage
函数呈现。
我继续看到mouseEvent.getSource
的替代解释,但似乎需要为每个可突出显示的对象创建图形对象。我担心当屏幕上有数百个可能被选中的对象和图块时,这可能效率低下。
具体来说,我的问题是:
每帧创建数百个(如果不是数千个)图形对象是否是使用getSource函数的一种坏方法?
在给定鼠标坐标的情况下,是否有更好的方法来确定选择哪个类的实例?比如所有像素的单独数组和它们所属的对象/图块ID(我估计大小接近3 MB,屏幕移动时不断更新)?