我刚刚开始将其用作年轻人的教育工具,并在尝试克隆精灵时遇到奇怪的行为。
我为 sprite_1 中的位置 x,y 设置了一个全局变量,并克隆了一个 sprite_2 对象。该对象立即将全局 x,y 复制到本地 x,y 并退出。稍后 sprite_2 使用存储的本地 x,y 进行渲染。
sprite_1:
sprite_2:
根据这个可复制的小示例,我希望四个精灵在屏幕上对角线向上/向右克隆。相反,我似乎得到了四个 sprite_2 对象都在彼此之上:
如果我在 clone(x,y) 函数的末尾添加 1 秒的延迟,但一切都很好:
由于所有四个 sprite_2 对象似乎都是放置最后一个克隆的位置,我怀疑这些克隆不是立即创建的,而是在某个时间一次性创建为一个批次,因此都从全局变量中获取最后一个坐标_clone_enemy_x/y。
是这样吗?有没有办法规避这种行为或解决方案是什么?