Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting current rotation with Paper.js

I'm making a small shoot 'em up game with Paper.js, but I'm unable to find that Paperscript provides any way to get the current rotation of my group of items.

In the code beneath, rotating 'circlegroup' with Q and E keys, should affect the WASD navigation, moving the item in the direction that the 'nose' of the object is currently pointing at. I figure that I need to get the current rotation of my items in order to affect the navigation. Does Paper.js provide any way to do this?

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);
  }
}
like image 870
PHearst Avatar asked Mar 22 '23 06:03

PHearst


1 Answers

There actually is a rotation property now, as written about here:

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

In order for this to work, you currently need to set #transformContent to false (also described in the above post). This will soon become the default behavior.

like image 180
Jürg Lehni Avatar answered Apr 01 '23 04:04

Jürg Lehni