Blog chia sẻ kinh nghiệm lập trình Android
Xin chào các bạn ở bài trước mình đã hướng dẫn các bạn load một bức ảnh lên theo kiểu  sprite hôm nay mình sẽ hướng dẫn các bạn các hiệu ứng đi kèm với sprite cũng như text sprite cũng có các hiệu ứng như text mà libs andengine đem lại  thật tuyệt phải không nào : bài hôm nay chỉ đơn giản có vậy thôi. nhưng mình nghĩ nó rất  có ích . Các bạn tùy biến các hiệu ứng này , kết hợp lại với nhau sẽ đk vô vàn các kiểu hiệu ứng đẹp.

Video hướng dẫn (Các bạn like  và G+ ủng hộ mình nha)



Untitled 1 Link Source : DOWNLOAD HERE


Code :

package phamtienphong.example.loadicon;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.ColorBackground;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.entity.util.FPSLogger;
import org.anddev.andengine.opengl.texture.Texture;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.region.TextureRegion;
import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;
import org.anddev.andengine.ui.activity.BaseGameActivity;

import android.os.CountDownTimer;

public class MainActivity extends BaseGameActivity {
 
 
 private static final int CAMERA_WIDTH = 480;
 private static final int CAMERA_HEIGHT = 800;
  
 private Texture mTexture; // ctrl +spage để import thư viên :d
 
 private TextureRegion mTextureRegion;

 @Override
 public Engine onLoadEngine() {
  
  final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
  final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
  engineOptions.getTouchOptions().setRunOnUpdateThread(true);
  return new Engine(engineOptions);
 }

 @Override
 public void onLoadResources() {
 
 TextureRegionFactory.setAssetBasePath("gfx/");
  
  // load icon
    this.mTexture = new Texture(256, 256,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
    mTextureRegion = TextureRegionFactory.createFromAsset(this.mTexture, this, "backgroundgid.png", 0, 0);
    this.mEngine.getTextureManager().loadTexture(this.mTexture);
      
 }

 @Override
 public Scene onLoadScene() {

  this.mEngine.registerUpdateHandler(new FPSLogger());
  final Scene scene = new Scene(2);
  scene.setBackground(new ColorBackground(0.5f, 0, 1));
  
  final Sprite sprite = new Sprite(100, 350, mTextureRegion);
  scene.attachChild(sprite);
  
   //sprite.setRotation(60);// quay 60 độ theo kim đồng hồ ;
   
   //sprite.setAlpha(0.1f); // làm ảnh mờ còn 0.1 lần so với bình thường 
  //sprite.setScale(2); // phóng to sprite lên 2 lần :D
  //sprite.setScaleX(1.5f); // kéo dãn sprite 1,5 lần theo Ox
  //sprite.setScaleY(3); // kéo dãn theo Oy 3 lần
  
  //sprite.setPosition(0, 0); // đạt ảnh về vị trí 0,0
  
 // kết hợp các hiệu ứng đơn 
    //xoay vòng tròn từ 0 tới 360 độ trong 5 giây => ok
    //sprite.registerEntityModifier(new SequenceEntityModifier(new RotationModifier(5, 0, 360)));
    
   // làm sáng đậm dần sprite từ 00 tới rõ nét nhất 1 trong 10 giây => ok
  //sprite.registerEntityModifier(new SequenceEntityModifier(new AlphaModifier(10, 0.0f, 1.0f)));
  
   // phóng to sprite từ 0.5 tới kick thước cũ là 1  trong 10s => ok
  //sprite.registerEntityModifier(new SequenceEntityModifier(new ScaleModifier(10, 0.5f, 1.0f)));
  
 //  kết hợp 2 lần phóng to thu nhỏ ta đk hiệu ứng phóng to  nhỏ to nhỏ trong 5s => ok
//   sprite.registerEntityModifier(new SequenceEntityModifier(new ScaleModifier(5, 0.5f, 1.0f),
//       new ScaleModifier(10, 1f, 0.5f)));
//  
  
   //textcustom.registerEntityModifier(new SequenceEntityModifier(hiệu ứng1, hiệu ứng 2, ...hiệu ứng n));
//  sprite.registerEntityModifier(
//       new SequenceEntityModifier(
//        new ParallelEntityModifier(
//          new AlphaModifier(4, 0.0f, 1.0f),
//          new ScaleModifier(4, 0.5f, 1.0f)),
//          new RotationModifier(4, 0, 360))  );

  
  // kêt hợp với hàm timercountter

  
  CountDownTimer t = new CountDownTimer(30000,100) {
       
       @Override
       public void onTick(long millisUntilFinished) {
        //di chuyển theo trục  y với tốc độ là 5 pixcel / lần đêm
        sprite.setPosition(sprite.getX(),sprite.getY()+5);
        
           
       }
       
       @Override
       public void onFinish() {
        
       }
      };
      t.start();
  
  
  
  
  return scene;
 }

 @Override
 public void onLoadComplete() {
  // TODO Auto-generated method stub
  
 }

 
}



0 comments:

Post a Comment

http://knlaptrinhandroid.blogspot.com/

 
Top