我的游戏中有以下圈子。玩家将他们拖入游戏中的不同位置。当玩家选择,再次播放时,我希望形状返回到init函数中声明的原始位置。我该怎么办呢?谢谢。
stage = new Kinetic.Stage({
container: "container",
width: 900,
height: 550
});
shapes = new Kinetic.Layer();
function init() {
circle1 = new Kinetic.Circle({
x: stage.getWidth() / 3.2,
y: stage.getHeight() / 3.2,
radius: radius,
fill: "blue",
stroke: "black",
strokeWidth: 4,
name: "circle",
draggable: true
});
shapes.add(circle1)
stage.add(shapes)
答案 0 :(得分:2)
将默认值存储在单独的变量中,然后使用.setPosition( x, y )
重置它:
//store settings
var settings = {
x: stage.getWidth() / 3.2,
y: stage.getHeight() / 3.2,
radius: radius,
fill: "blue",
stroke: "black",
strokeWidth: 4,
name: "circle",
draggable: true
};
//use settings
circle1 = new Kinetic.Circle(settings);
//after move, reset using:
circle1.setPosition(settings.x,settings.y);
答案 1 :(得分:2)
你也可以使用超级方便的setAttrs方法:
circle1.setAttrs(settings);
干杯!
答案 2 :(得分:0)
我知道这个问题相当陈旧,但我刚刚解决了这个问题。
stage.removeChildren();
stage.setAttrs(stage.defaultNodeAttrs);
stage.reset()不再起作用,但这应该可以做你想要的。