MarteEngine: Rotate and scale

mac2022-06-30  25

Alarms and Tweens是唯一的改变你的entity的行为的方式:你可以改变位置(和许多其他属性),但是MarteEngine帮助你操作你的entity的角度和缩放。

Rotate 旋转一个entity仅仅是一个角度上的改变,所以MarteEngine可以旋转与entity关联的图像或动画,我们通过定义一个entity上的alarm实现: public  class RotateEntity  extends Entity {      private  static  final String ROTATE_ME = "rotate_me";      public RotateEntity( float x,  float y, Image image) {          super(x, y, image);          //  we set that image or animation must be rotate with Entity         setCentered( true);          //  we define and alarm so we can rotate entity every 2 seconds         setAlarm(ROTATE_ME, 2,  falsetrue);     }     @Override      public  void alarmTriggered(String name) {          if (name.equalsIgnoreCase(ROTATE_ME)) {              //  let's rotate a bit              int angle =  this.getAngle();             angle += 2;              if (angle >= 360)                 angle -= 360;              this.setAngle(angle);         }     } }

 

We can mark on setCentered(true) in entity constructor: you must let know to MarteEngine that image or animation associated to entity rotate with it.. in some cases you simply don't want this behaviour.

 

 

Scale

 

Scale entity image or animation is not so different: just change scale properties on Entity:

 

public  class ScaleEntity  extends Entity {      private  static  final String SCALE_ME = "scale_me";      private  float scaleDir = -0.1f;      public ScaleEntity( float x,  float y, Image image) {          super(x, y, image);          //  we define and alarm so we can scale entity every 2 seconds         setAlarm(SCALE_ME, 2,  falsetrue);     }     @Override      public  void alarmTriggered(String name) {          if (name.equalsIgnoreCase(SCALE_ME)) {              //  let's scale entity              this.scale += scaleDir;              if ( this.scale <= 0.1f ||  this.scale >= 2.0f){                 scaleDir *= -1;             }         }     } }

 

In this example we are scaling entity image from a minimum of 0.1 to 2.0 of his original width and height!

 

 

 

 

转载于:https://www.cnblogs.com/cuizhf/archive/2012/03/03/2378626.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)