I have a Actor which should always turn towards the mouse (not move along with it, just turn). Can this be done using Greenfoot and how?
Thanks
PStiger


1 2 3 4 5 6 7 8 9 10 11 12 | public void turnTowards ( int x, int y) { double dx = x - getX(); double dy = y - getY(); double angle = Math.atan2(dy,dx)* 180.0 /Math.PI; setRotation( ( int )angle ); } public void turnTowards (MouseInfo mi) { turnTowards(mi.getX(), mi.getY()); } |
1 | setRotation |
1 | turnTo |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public void act() { MouseInfo m = Greenfoot.getMouseInfo(); if (m != null ) turnTowards(m); if (Greenfoot.isKeyDown( "w" )) move( 2 ); if (Greenfoot.isKeyDown( "s" )) move(- 2 ); } public void turnTowards (MouseInfo mi) { turnTowards(mi.getX(), mi.getY()); } public void turnTowards ( int x, int y) { double dx = x - getX(); double dy = y - getY(); double angle = Math.atan2(dy,dx)* 180.0 /(Math.PI); turnTo( ( int )angle ); } |