使用Paper.js检测当前旋转

时间:2013-12-20 10:45:02

标签: javascript game-physics paperjs

我正在与Paper.js进行小型射击游戏, 但我无法找到Paperscript提供任何方式来获得当前轮换 我的一组物品。

在下面的代码中,使用Q和E键旋转'circlegroup'应该影响WASD导航,将项目移动到对象的“鼻子”当前指向的方向。我认为我需要获取我的项目的当前轮换 影响导航。 Paper.js能提供任何方法吗?

You can see/edit the Papersketch here

bigcircle = new Path.Circle({
  radius:10,
  fillColor: 'grey',
  position: (10, 20),
  selected: true
});

smallcircle = new Path.Circle({
  radius:5,
  fillColor: 'black'
});

var circlecontainer  = new Group({
  children:[smallcircle, bigcircle],
  position: view.center
});


var circlegroup = new Group({
  children: [circlecontainer]
});

function onKeyDown(event) {
  if(event.key == 'w') {
    circlegroup.position.y -= 10;
  }
  if(event.key == 'a') {
    circlegroup.position.x -= 10;
  }
  if(event.key == 's') {
    circlegroup.position.y += 10;
  }
  if(event.key == 'd') {
    circlegroup.position.x += 10;
  }
  if(event.key == 'q') {
      // hold down
    circlegroup.rotate(1);
  }
  if(event.key == 'e') {
      // hold downw
    circlegroup.rotate(-1);
  }
}

3 个答案:

答案 0 :(得分:7)

现在实际上有一个旋转属性,如下所示:

https://groups.google.com/forum/#!topic/paperjs/Vwp5HbTo9W0

为了使其工作,您当前需要将#transformContent设置为false(也在上面的帖子中描述)。这很快就会成为默认行为。

答案 1 :(得分:0)

不,每个对象没有存储旋转属性。您需要自己为每个对象或类定义它。请查看Github Repository中包含的Paperoids游戏,以获取更详细的示例。

答案 2 :(得分:0)

2017年偶然发现了这个问题......有一个Path.position属性http://paperjs.org/reference/path/#rotation