第一次在 stackoverflow 上发帖,请温柔点。
我最近开始摆弄 pygame,所以我想我应该使用 winforms 来装备一个世界创造者。我有一堆“平铺”用户控件,它们只是一个图片框。它们彼此独立地存储位置和旋转(据说),但是当我在一个图块上使用 MouseDown 事件来更改其旋转时,它似乎会影响具有相同图像的所有其他图块。更奇怪的是,具有不同图像的图块似乎不受影响。我将位置和旋转数据输出到一个 json 文件,该文件保存了所单击的图块的正确旋转,但在视觉上,图块在 winforms 应用程序中显示为旋转。这是 winforms 及其缓存图像方式的一些错误吗?或者我做错了什么?整个项目位于https://github.com/L00GIE/Tile-Mapper
在 gif 中,您可以看到我右键单击左上角的污垢图块,然后松开鼠标按钮,但是当我将鼠标悬停在具有相同图像的任何其他图块上时,它们也会旋转(但对象的旋转值其本身仅根据输出的 json 数据更改单击的图块)
我尝试创建一个新图像并完全替换图片框图像(这是 github 上的最新迭代),但是这最终得到相同的结果。
正如 György 指出的那样,我将相同的图像实例分配给每个图块,并且它们仅在失效时进行更新。 将图像设置为目标图像的新位图副本修复了该问题。